Socket服務端常用方法,不積矽步無以至千里

2021-10-10 17:34:11 字數 1315 閱讀 8739

1. 建立服務端socket物件:socket serversocket=new socket(addressfamily.internetwork,sockettype.stream,protocoltype.tcp);

2. 建立客戶端socket物件socket clientsocket=null;

3. 配置服務端socket:

建立表示ip的位元組陣列:byte ip=new byte

建立ipaddress物件:ipaddress ipaddress=new ipaddress(ip);

建立ipendpoint物件:ipendpoint ipendpoint=new ipendpoint(ip,埠號);

服務端繫結ipendpoint物件:serversocket.bind(ipendpoint);

服務端開始監聽:serversocket.listen(監聽佇列的長度);

建立單獨的執行緒執行接收連線的方法:thread thread=new thread(接收連線的方法);

開啟執行緒:thread.start();

4. 建立接收連線的方法:

將接收到的連線儲存:this.clientsocket=serversocket.accept();

建立單獨的執行緒,執行資料互動的方法:thread thread=new thread(資料互動的方法);

開啟執行緒:thread.start();

5. 建立資料互動的方法:

建立連線狀態標誌:bool connectflag=true;

將4中監聽到的客戶端socket儲存到區域性變數中:socket clientsocket=this.clientsocket;

開始迴圈進行資料互動:

建立接收資料位元組陣列資料塊:byte receivebuffer=new byte[最大一次接收的位元組數];

建立用來儲存實際接收位元組數的變數:int receivenum=-1;

讀取資料:num=clientsocket.receive(receivebuffer);

判斷讀取到的位元組數是否為0,如果為0,則對等連線已斷開

銷毀引用:clientsocket.dispose();

連線標誌置位false:connectflag=false;

退出迴圈:break;

建立傳送資料位元組陣列資料塊:byte sendbuffer=new byte;

建立用來儲存實際傳送位元組數的變數:int sendnum=-1;

傳送資料:sendnum=clientsocket.send(sendbuffer);

6. *可以通過異常捕獲,得到客戶端的斷線狀態*

服務端socket程式

socket是一種ipc方法,本文實現乙個簡單的服務端例程,用於了解socket程式框架。socket函式用於建立套接字。bind函式用於分配ip位址和埠號。listen函式將套接字轉為可接收連線狀態。accept函式受理連線請求。如果在沒有連線的情況下呼叫該函式,則不會返回,直到有連線請求為止。c...

Socket客戶端常用方法,不積矽步無以至千里

1.建立客戶端socket物件 socket clientsocket new socket addressfamily.internetwork,sockettype.stream,protocoltype.tcp 2.建立表示ip的位元組陣列 byte ip new byte 3.建立ipadd...

服務端 客戶端Socket通訊

服務端 using system using system.collections.generic using system.net using system.net.sockets using system.text using system.text.regularexpressions usi...