c socket網路連線(伺服器端)

2021-08-21 04:34:25 字數 2496 閱讀 4901

首先我們需要新建乙個socket

//定義乙個socket

socket serversocket = new socket(addressfamily.internetwork, sockettype.stream, protocoltype.tcp);

這三個引數分別是選擇ipv4或者是ipv6,第二個是選擇socket傳輸資料型別 dgram是資料報udp協議常用,stream是資料流,tcp

常用,第三個引數就是選擇網路協議型別。

接下來我們開始繫結ip和埠號

ipaddress ipaddress = ipaddress.parse("192.168.1.5");

ipendpoint ipendpoint = new ipendpoint(ipaddress, 8989);

//繫結ip和埠號

serversocket.bind(ipendpoint);

將你的ip和埠號繫結上去即可

接下來我們就開始監聽這個socket連線的狀態,如果有通訊的話我們就可以進行訊息處理

//開始監聽埠號

serversocket.listen(0);

//接收乙個連線

socket clientsocket = serversocket.accept();

string msg = "hellow world! 你好";

//轉換訊息

byte data = encoding.utf8.getbytes(msg);

//傳送訊息

clientsocket.send(data);

listen這個監聽的方法的引數代表等待個數,而不是連線個數,0代表沒有等待個數,多少都可以。

然後使用accept這個方法產生乙個新的和客戶端連線的socket(如果沒有連線,**會停留在監聽的的部分等待,直到有客戶端連線才會執行下面的**)。

後面就是將我們的訊息轉換成位元組流傳送給客戶端,通過send()方法,轉換字串這裡使用了utf8的格式getbytes()方法,這個格式可以轉換中文,同樣的接受也需要使用utf8的格式使用getstring()方法接受。

下面我們就要在伺服器接收客戶端傳送的訊息了

//接收訊息

byte databuffer = new

byte[1024];//開闢接收空間

intcount = clientsocket.receive(databuffer);//獲取訊息的位元組長度

string msgreceive = system.text.encoding.utf8.getstring(databuffer, 0, count);//讀取從0開始到位元組長度部分的資料,將多餘的空白位元組踢去

//輸出接收的資訊

console.writeline(msgreceive);

//關閉連線

clientsocket.close();//關閉和客戶端accept產生的socket連線

serversocket.close();//關閉自己的socket連線

完整**

///

/// 同步接收資料

///void startseversync()

);ipaddress ipaddress = ipaddress.parse("192.168.1.5");

ipendpoint ipendpoint = new ipendpoint(ipaddress, 8989);

//繫結ip和埠號

serversocket.bind(ipendpoint);

//開始監聽埠號

serversocket.listen(0);

//接收乙個連線

socket clientsocket = serversocket.accept();

string msg = "hellow world! 你好";

//轉換訊息

byte data = encoding.utf8.getbytes(msg);

//傳送訊息

clientsocket.send(data);

//接收訊息

byte databuffer = new

byte[1024];

int count = clientsocket.receive(databuffer);

string msgreceive = system.text.encoding.utf8.getstring(databuffer, 0, count);

console.writeline(msgreceive);

//關閉連線

clientsocket.close();

serversocket.close();

}

網路字典伺服器端

include include include include include include include include include include include define n 256 define r 1 user register define l 2 user login de...

C Socket伺服器端如何判斷客戶端斷開

使用socket類中的poll方法,就可以。socket client 假如已經建立好了,連線到伺服器端得socket的客戶端物件。我們只要client.poll 10,selectmode.selectread 判斷就行了。只要返回true是。就可以認為客戶端已經斷開了。poll 方法將會檢查 s...

C Socket伺服器端如何判斷客戶端斷開求解

socket client 假如已經建立好了,連線到伺服器端得socket的客戶端物件。我們只要client.poll 10,selectmode.selectread 判斷就行了。只要返回true是。就可以認為客戶端已經斷開了。poll 方法將會檢查 socket 的狀態。指定 selectmod...