C Socket網路Tcp通訊

2021-09-11 23:05:40 字數 2844 閱讀 6174

01,申請乙個socket

02,繫結到乙個ip位址和乙個埠上

03,開啟偵聽,等待接收連線

01,申請乙個socket

02,連線伺服器(指明ip位址和埠號)

伺服器端接收到連線請求後,產生乙個新的socket(埠大於1024)與客戶端建立連線並進行通訊,原監聽socket繼續監聽。

注意:負責通訊的socket不能無限建立,建立的數量和作業系統有關。

public socket(addressfamily addressfamily,sockettype  sockettype,protocoltype  protocoltype)

sockettype:定義要開啟的socket的型別

socket類使用protocoltype列舉向windows  sockets  api通知所請求的協議

1,埠號必須在 1 和 65535之間,最好在1024以後。

2,要連線的遠端主機必須正在監聽指定埠,也就是說你無法隨意連線遠端主機。

3,如果只是在當前電腦上上執行需要使用127.0.0.1ip位址,192.x.x.x的需要使用網線連線其他主機。

如:ipaddress addr = ipaddress.parse("127.0.0.1");

ipendpoint endp = new ipendpoint(addr,,9000);

服務端先繫結:serverwelcomesocket.bind(endp)

客戶端再連線:clientsocket.connect(endp)

3,乙個socket一次只能連線一台主機

4,socket關閉後無法再次使用

5,每個socket物件只能與一台遠端主機連線。如果你想連線到多台遠端主機,你必須建立多個socket物件。

8.socket常用類和方法

方法:socket():建立乙個socket

bind():繫結乙個本地的ip和埠號(ipendpoint)

listen():讓socket偵聽傳入的連線吃那個病,並指定偵聽佇列容量

connect():初始化與另乙個socket的連線

accept():接收連線並返回乙個新的socket

send():輸出資料到socket

receive():從socket中讀取資料

close():關閉socket,銷毀連線

接下來,我們同乙個簡單的伺服器和客戶端通訊的案例,來看下sokcet的具體用法,效果圖如下:

下面是實現的**功能:

編寫工具:vs2015

using system;

using system.collections.generic;

using system.componentmodel;

using system.data;

using system.drawing;

using system.linq;

using system.net;

using system.net.sockets;

using system.text;

using system.threading;

using system.threading.tasks;

using system.windows.forms;

namespace socketserver

/// }

catch (exception ex)}}

///

/// 接受訊息

///

/// showlog(ex.message);

break;}}

private void button2_click(object sender, eventargs e)

catch (exception ex)

}private void button1_click(object sender, eventargs e)

catch (exception ex)}}

}客戶端實現**:

using system;

using system.collections.generic;

using system.componentmodel;

using system.data;

using system.drawing;

using system.linq;

using system.net;

using system.net.sockets;

using system.text;

using system.threading;

using system.threading.tasks;

using system.windows.forms;

namespace scoketclient

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

private void bt_statrconnet_click(object sender, eventargs e)

private void receiver()

catch (exception ex)}}

}///

/// 傳送訊息給伺服器

///

/// showlog(ex.message);}}}}}

c socket 網路通訊

1.服務端 流程 1 建立套接字,即呼叫socket 根據需要選擇引數型別 2 根據位址和埠號,繫結服務端,即呼叫bind 3 將套接字設為監聽套接字,並設定監聽數,即呼叫listen 4 阻塞等待等待客戶端連線請求,即呼叫accept 5 接受傳送訊息,即呼叫recv send 函式 6 關閉套接...

C Socket通訊例子

建立兩個工程檔案,server和client include include pragma comment lib,ws2 32.lib 靜態加入乙個lib檔案 pragma warning disable 4996 using namespace std intmain 繫結ip和埠 配置監聽位址...

C socket同步通訊

源博主鏈結 關於c socket通訊,分為同步和非同步通訊,本文簡單介紹一下同步通訊。通訊兩端分別為客戶端 client 和伺服器 server 1 建立乙個socket對像 2 用socket對像的connect 方法以上面建立的endpoint對像做為引數,向伺服器發出連線請求 3 如果連線成功...