C 中Socket的簡單使用

2021-08-27 05:58:59 字數 2722 閱讀 6131

以前學過的socket,後來沒怎麼用過,就基本忘了,所以閒來時重新回顧學習一番.

socket其實並不是乙個協議,而是為了方便使用tcp或udp而抽象出來的一層,是位於應用層和傳輸控制層之間的一組介面.

當兩台主機通訊是,必須通過socket連線,socket則利用tcp/ip協議建立tcp連線.tcp連線則更依賴於底層的ip協議.socket是控制層傳輸協議.

雙向的通訊連線實現資料的交換,連線的一端成為乙個socket.

第一步:服務端監聽某個埠

第二步:客戶端向服務端位址和埠發起socket請求

第三步:伺服器接收連線請求後建立socket連線,並維護這個連線佇列

第四步:客戶端和服務端就建立起了雙工同信,客戶端與服務端就可以實現彼此傳送訊息

1.服務端**

using system;

using system.collections.generic;

using system.linq;

using system.net;

using system.net.sockets;

using system.text;

using system.threading;

namespace socketutil

public socketserver(int port)

public void startlisten()

訊息成功", _socket.localendpoint.tostring());

開始監聽

thread thread = new thread(listenclientconnect);

thread.start();

}catch (exception ex)

}/// /// 監聽客戶端連線

///

private void listenclientconnect()

}catch (exception)

}/// /// 接收客戶端訊息

///

/// 來自客戶端的socket

private void receivemessage(object socket)

,訊息", clientsocket.remoteendpoint.tostring(), encoding.utf8.getstring(buffer, 0, length));

}catch (exception ex)}}

}}

2.客戶端**

using system;

using system.collections.generic;

using system.linq;

using system.net;

using system.net.sockets;

using system.text;

using system.threading;

using system.threading.tasks;

namespace socketutil

public socketclient(int port)

/// /// 開啟服務,連線服務端

///

public void startclient()

,訊息:", _socket.remoteendpoint.tostring(), encoding.utf8.getstring(buffer,0,length));

像伺服器傳送訊息

for (int i = 0; i < 10; i++)

", datetime.now.tostring());

_socket.send(encoding.utf8.getbytes(sendmessage));

console.writeline("像服務傳送的訊息:", sendmessage);}}

catch (exception ex)

console.writeline("傳送訊息結束");

console.readkey();}}

}

3.分別開啟客戶端和服務端

using socketutil;

using system;

using system.collections.generic;

using system.linq;

using system.text;

using system.threading.tasks;}}

using socketutil;

using system;

using system.collections.generic;

using system.linq;

using system.text;

using system.threading.tasks;}}

4. 執行效果圖

python中的socket簡單使用

伺服器端套接字 客戶端套接字 公共用途的套接字函式 服務端我們可以使用 socket 模組的 socket 函式來建立乙個 socket 物件。然後通過呼叫 bind hostname,port 函式來指定服務的埠。接著,呼叫 socket 物件的 accept 方法,等待客戶端的連線,返回 con...

C 之Socket的簡單使用

socket是一種通訊tcp ip的通訊介面,也就是http的抽象層,就是socket在http之上,socket也就是發動機。實際上,傳輸層的tcp是基於網路層的ip協議的,而應用層的http協議又是基於傳輸層的tcp協議的,而socket本身不算是協議,就像上面所說,它只是提供了乙個針對tcp或...

Socket的使用(簡單測試)

服務端 public class sockettest public sockettest int port public void startlisten catch exception ex 監聽客戶端連線 private void listenclientconnect catch excep...