美文网首页C#
面向对象(二十四)-Socket,TCP客户端、服务端简单聊天室

面向对象(二十四)-Socket,TCP客户端、服务端简单聊天室

作者: 元宇宙协会 | 来源:发表于2017-12-10 22:35 被阅读120次

    1. 服务端代码

    // 1. 新建一个Socket 服务器端 连接对象
                // 参数 寻址范围,数据类型,协议格式
                Socket tcpServer = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
                byte[] ip = { 192, 168, 199, 117 };
                IPAddress address = new IPAddress(ip);
                IPEndPoint point = new IPEndPoint(address, 8090);
                tcpServer.Bind(point); // 2. 绑定Ip和端口号
                tcpServer.Listen(100); // 3. 设置监听连接的最大请求数
                Socket newSocket = tcpServer.Accept(); // 4. 等待客户端的连接,会阻塞当前线程,直到接收到客户端的连接
    
                string sendMessage = "Hello Welcome Connect";
                newSocket.Send(Encoding.UTF8.GetBytes(sendMessage)); // 5.向客户端发送一条消息
    
                byte[] data = new byte[1024];
                int length = newSocket.Receive(data);
                Console.WriteLine("接收到客户端的数据"+Encoding.UTF8.GetString(data, 0, length));
                Console.ReadKey();
    

    2. 客户端代码

    //1. 建立客户端连接对象 
                // 参数 寻址范围,数据类型,协议格式
                Socket clientSocket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
    
                // 2. 建立一个连接,请求连接到服务器
                clientSocket.Connect(new IPEndPoint(new IPAddress(new byte[] { 192, 168, 199, 117 }), 8090));
    
                // 建立一个用来接受数据的容器
                byte[] data = new byte[1024];
                // 3. 接受服务端发送的数据
                int length = clientSocket.Receive(data); // 该数组用来接受数组,接受服务端传递的数据 , 返回值,用来表示本次接收到的数据长度
                // 4. 将服务器端发送过来的数据转换成字符串
                string reciveMessage = Encoding.UTF8.GetString(data, 0, length);
                Console.WriteLine(reciveMessage);
    
                string message = Console.ReadLine();
                clientSocket.Send(Encoding.UTF8.GetBytes(message));
    
                Console.ReadKey();
    

    相关文章

      网友评论

        本文标题:面向对象(二十四)-Socket,TCP客户端、服务端简单聊天室

        本文链接:https://www.haomeiwen.com/subject/wdkbixtx.html