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...