c socket 網路通訊

2021-09-11 23:14:57 字數 1610 閱讀 2750

1.服務端

流程:1、建立套接字,即呼叫socket(),根據需要選擇引數型別

2、根據位址和埠號,繫結服務端,即呼叫bind()

3、將套接字設為監聽套接字,並設定監聽數,即呼叫listen()

4、阻塞等待等待客戶端連線請求,即呼叫accept()

5、接受傳送訊息,即呼叫recv(),send()函式

6、關閉套接字,即呼叫close()

#include #include #include #include #include #include #include #include using namespace std;

class server

serveraddr.sin_family = af_inet; // af_inet協議族

serveraddr.sin_port = htons(port); // 將埠號轉換為網路位元組型埠

serveraddr.sin_addr.s_addr = htonl(inaddr_any); // 獲取本機位址,並轉為網路位元組型

bind(serverfd, (struct sockaddr*)&serveraddr, sizeof(serveraddr));

// 這裡繫結服務端位址,注意第二個引數,必須傳指標,型別為void*

listen(serverfd, backlog);

// 監聽服務端,並設定最大監聽數

}void run()

~server()

if(serverfd != -1)

}int test()

catch(const char* e)

delete s;

// 清理記憶體

}int main(int argc, char *ar**)

2.客戶端

流程:1、建立套接字,即呼叫socket()

2、根據位址,埠號繫結位址,即呼叫bind()

3、發起連線服務端請求,即呼叫connect()

4、接收發訊息,即recv(),send()

5、關閉套接字,close()

#include #include #include #include #include #include #include #include #include using namespace std;

class client

serveraddr.sin_family = af_inet;

serveraddr.sin_port = htons(port);

inet_pton(af_inet, "127.0.0.1", &serveraddr.sin_addr.s_addr);

int ret1;

ret1 = connect(serverfd, (struct sockaddr*)&serveraddr, sizeof(serveraddr));

}void run()

~client()

}};int test()

catch(const char* e)

}int main(int argc, char *ar**)

C Socket網路Tcp通訊

01,申請乙個socket 02,繫結到乙個ip位址和乙個埠上 03,開啟偵聽,等待接收連線 01,申請乙個socket 02,連線伺服器 指明ip位址和埠號 伺服器端接收到連線請求後,產生乙個新的socket 埠大於1024 與客戶端建立連線並進行通訊,原監聽socket繼續監聽。注意 負責通訊的...

C 網路通訊

c 網路通訊 一 伺服器端程式 10.17 1.建立伺服器端socket 1 使用socket類 建立伺服器socket物件 socket objs new socket 引數 使用ipendpoint類設定伺服器ip位址和埠號 或使用dns類 ipaddress serip ipaddress.p...

Winsock網路通訊

winsock網路通訊 這裡我希望和大家 一下winsock網上通訊的程式,由於網際網路的普及,越來越多的程式具有了在網上與其他程式通訊的功能.其實所有這些功能都建立在winsock介面之上,應用程式執行大多數網路通訊的基本物件稱為套介面或軟插口 socket 使用mfc winsocket類新增網...