C# Socket通信服务器编写
C# Socket通信服务器编写
C# Socket通信服务器程序编写
Socket服务器的编程步骤:
1.创建套接字。
2.给已经知道的套接字绑定一个端口号
3.监听网络连接
4.监听到有客户端接入,创建一个新连接
5.数据交互
6.关闭套接字,断开连接。
//第一步 创建套接字socketSever = new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);//获取 IPIPAddress IP = IPAddress.Parse(this.txt_IP.Text);//获取 串口号int Port =Convert.ToInt32( this.txt_Port.Text);
//封装IP和串口号IPEndPoint ipe = new IPEndPoint(IP,Port);//绑定socketSever.Bind(ipe);//监听socketSever.Listen(10);Task.Run(new Action(() =>{CheckListening();}));
//第三步,监听网络等待客户端接入private void CheckListening(){while(true){socketClient = socketSever.Accept();AddLog(0,"连接成功");Task.Run(new Action(() => {ReceiveMsg(socketClient);}));}}
//第五步 接受客户端发来的数据private void ReceiveMsg(Socket socketClient){while (true){byte[] buffer = new byte[1024 * 1024 * 20];int length = -1;length = socketClient.Receive(buffer);if (length > 0){string msg = string.Empty;MessageType type = (MessageType)buffer[0];switch (type){case MessageType.ASCII:msg = Encoding.ASCII.GetString(buffer,1,buffer.Length-1);AddLog(0,msg);break;case MessageType.UTF8:msg = Encoding.UTF8.GetString(buffer, 1, buffer.Length - 1);AddLog(0, msg);break;case MessageType.Hex:msg = HexGetString(buffer, 1, buffer.Length-1);AddLog(0, msg);break;case MessageType.File:break;case MessageType.JSON:break;default:break;}}}}
//发送数据private void btn_SendASCII_Click_1(object sender, EventArgs e){string SendMsg = this.txt_Send.Text;byte[] Send = new byte[1024*1024*20];Send = Encoding.Default.GetBytes(SendMsg);socketClient?.Send(Send);}