加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

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】收集整理供大家参考研究

如果以上内容对您有帮助,欢迎收藏、点赞、推荐、分享。

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读