Socket 通訊流程
阿新 • • 發佈:2018-11-28
一、客戶端
(1)建立socket
Socket tcpClientSocket= new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
(2)連線網路終端
IPAddress ipAddress = IPAddress.Parse("127.0.0.1");//伺服器IP地址
EndPoint point = new IPEndPoint(ipAddress, 7788);//網路終端(IP地址,埠號)
tcpClientSocket.Connect(point);//連線網路終端
(3)向伺服器端傳送訊息
string message = "你好,我是客戶端!";
tcpClientSocket.Send(Encoding.UTF8.GetBytes(message));
(4)接收伺服器訊息
byte[] data = new byte[1024];//接收資料容器
int length= tcpClientSocket.Receive(data);//返回值表示實際接收的位元組長度
string message1 = Encoding.UTF8.GetString(data,0,length);//轉換資料
二、服務端
(1)建立socket
Socket tcpServerSocket = new Socket(AddressFamily.InterNetwork , SocketType.Stream, ProtocolType.Tcp);
(2)繫結網路終端(即繫結IP地址和埠號)
IPAddress ipAdress = new IPAddress(new byte[] { 127, 0, 0, 1});//伺服器IP地址
EndPoint point = new IPEndPoint(ipAdress, 7788);//網路終端:對Ip和埠的封裝類
tcpServerSocket.Bind(point);//繫結網路終端
(3)建立偵聽佇列
tcpServerSocket.Listen(100);//引數是伺服器最大連線數
(4)等待接受連線
Socket clientSocket = tcpServerSocket.Accept();//這個方法會暫停當前執行緒,直到有有一個客戶端連線,並且返回一個用於通訊的Socket
(5)接收客戶端訊息
byte[] data = new byte[1024];//接收資料容器
int length = clientSocket.Receive(data);//返回值表示實際接收的位元組長度
string message = Encoding.UTF8.GetString(data, 0, length);//轉換資料
(6)傳送訊息給客戶端
string message1 = "hello,我是伺服器!";
clientSocket.Send(Encoding.UTF8.GetBytes(message1));