C#实现一个简易的 Socket/TCP 服务器与客户端
发布时间:2020-12-15 17:52:18 所属栏目:百科 来源:网络整理
导读:今天PHP站长网 52php.cn把收集自互联网的代码分享给大家,仅供参考。 namespace Server { using System; using System.Diagnostics; using System.Net; using System.Net.Sockets; using System.Text; class Program { st
以下代码由PHP站长网 52php.cn收集自互联网 现在PHP站长网小编把它分享给大家,仅供参考 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,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,ProtocolType.Tcp ); try { sock.Connect(new IPEndPoint(ip,port)); // 连接服务器 sock.Send(Encoding.Default.GetBytes("客户端:我们一起闯码头")); // 发送数据到服务器 byte[] buffer = new byte[512]; // 接收缓冲区 int offset = sock.Receive(buffer,SocketFlags.None); // 接收服务器传入的数据 Console.WriteLine(Encoding.Default.GetString(buffer,offset)); // 输出服务器传入的数据 sock.Close(); // 再见 } catch(SocketException e) { Console.WriteLine(e.Message); // 输出发生错误的信息 } Console.ReadKey(false); } } } 然后再运行客户端 以上内容由PHP站长网【52php.cn】收集整理供大家参考研究 如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。 (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |