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

2018-07-20    来源:open-open

容器云强势上线!快速搭建集群,上万Linux镜像随意使用

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

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

然后再运行客户端

标签: 代码 服务器 服务器地址 服务器端

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点!
本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。

上一篇:Java 计算倒计时

下一篇:python多父类继承示例