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

前端之家收集整理的这篇文章主要介绍了C#实现一个简易的 Socket/TCP 服务器与客户端前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

下面是编程之家 jb51.cc 通过网络收集整理的代码片段。

编程之家小编现在分享给大家,也给大家做个参考。

    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);  
        }  
    }  
}  

然后再运行客户端

以上是编程之家(jb51.cc)为你收集整理的全部代码内容,希望文章能够帮你解决所遇到的程序开发问题。

如果觉得编程之家网站内容还不错,欢迎将编程之家网站推荐给程序员好友。

猜你在找的C#相关文章