| 注册
请输入搜索内容

热门搜索

Java Linux MySQL PHP JavaScript Hibernate jQuery Nginx
jopen
10年前发布

C#实现一个简易的 Socket/TCP 服务器与客户端

该“Socket / 套接字”示例为同步的,如果你需要学习Socket,那么学

习同步方式是很有必要的,异步是从同步过渡过去的。首先你需要

创建两个控制台项目 一个为Server / 服务器 另一个为Client / 客户端

服务器:

    namespace Server        {            using System;            using System.Diagnostics;            using System.Net;            using System.Net.Sockets;            using System.Text;                    class Program            {                static void Main(string[] args)                {                    // 物质女的服务器                    Console.Title = "Server of pid:" + Process.GetCurrentProcess().Id;                            int port = 91; // 服务器端口号                    int backlog = 0; // 临时挂起的客户端连接的最大数量                    IPAddress ip = IPAddress.Parse("192.168.1.5"); // 服务器IPv4地址                            Socket sock = new Socket( // 构建一个套接字服务                            AddressFamily.InterNetwork,                            SocketType.Stream,                            ProtocolType.Tcp                        );                                        sock.Bind(new IPEndPoint(ip, port)); // 绑定服务器地址                    sock.Listen(backlog); // 开始侦听                            byte[] buffer = new byte[512]; // 字节缓冲区                            while (true) // 循环接收请求                    {                        Socket client = sock.Accept(); // 为客户端建立服务连接                                int offset = client.Receive(buffer, buffer.Length, SocketFlags.None); // 接收客户端传入的数据                                Console.WriteLine(Encoding.Default.GetString(buffer, 0, offset));   // 输出客户端传入的数据                                // 服务器回应客户端                        client.Send(Encoding.Default.GetBytes("服务器:马上和你要分手"), SocketFlags.None);                                // 再见                        client.Close();                    }                }            }        }  

客户端:
namespace Client    {        using System;        using System.Diagnostics;        using System.Net;        using System.Net.Sockets;        using System.Text;            class Program        {            static void Main(string[] args)            {                Console.Title = "Client of pid:" + Process.GetCurrentProcess().Id;                    int port = 91; // 服务器端口号                IPAddress ip = IPAddress.Parse("192.168.1.5"); // 服务器地址                    Socket sock = new Socket( // 构建一个套接字服务                        AddressFamily.InterNetwork,                        SocketType.Stream,                        ProtocolType.Tcp                    );                    try                {                    sock.Connect(new IPEndPoint(ip, port)); // 连接服务器                        sock.Send(Encoding.Default.GetBytes("客户端:我们一起闯码头")); // 发送数据到服务器                        byte[] buffer = new byte[512]; // 接收缓冲区                    int offset = sock.Receive(buffer, buffer.Length, SocketFlags.None); // 接收服务器传入的数据                        Console.WriteLine(Encoding.Default.GetString(buffer, 0, offset)); // 输出服务器传入的数据                        sock.Close(); // 再见                }                catch(SocketException e)                {                    Console.WriteLine(e.Message); // 输出发生错误的信息                }                Console.ReadKey(false);            }        }    }  

服务器与客户端两份代码写好并测试 首先你需要启动服务器 

然后再运行客户端