套接字學習之tcp連線的建立

2021-07-22 09:19:26 字數 1230 閱讀 7004

需要重新拿起書本複習複習,所以就有了下面的博文,希望我能堅持學習,堅持努力。

tcp連線的建立總的來說就是乙個跟**系統類似的套路:

對於伺服器:

1. 建立乙個socket用於通訊(類似listenfd = socket(af_inet, sock_stream, 0))

2. 繫結乙個位址好讓別人能找到你

類似:

struct sockaddr_in servaddr;  

/*連線型別*/

servaddr.sin_family = af_inet;

/*繫結任意位址*/

servaddr.sin_addr.s_addr = htonl(inaddr_any);

/*將埠從主機位元組序裝換成網路位元組序*/

servaddr.sin_port = htons(8888);

bind(listenfd, (struct sockaddr *)&servaddr, sizeof(servaddr))

3.  監聽,如同開啟**振鈴,這叫被動開啟
listen(listenfd, 10);
4.  等待連線
for(; ;)

對於客戶端:

1. 建立套接字,類似於伺服器,只是這個套接字是主動開啟套接字

sockfd =socket(af_inet, sock_stream, 0);
2.  連線伺服器
servaddr.sin_family = af_inet;

servaddr.port = htons(8888);

/*將點分十進位制的ip位址轉換成合適的格式後給sin_addr*/

inet_pton(af_inet, serverip, &servaddr.sin_addr);

connect(sockfd, (struct sockaddr_in)&servaddr, sizeof(servaddr));

write();

close(sockfd);

return

0;

建立和終止過程:

![tcp建立連線和關閉過程](

使用套接字建立連線 TCP

int socket int domain,int type,int protocol domain pf inet,pf inet6以及pf local等,表示什麼型別的套接字 type sock stream 表示位元組流,tcp sock dgram 表示資料報,udp sock raw 表示...

Tcp套接字連線 二

include include using namespace std pragma comment lib,ws2 32.lib intmain 檢查if lobyte wsadata.wversion 1 hibyte wsadata.wversion 1 建立tcp 套接字 socket so...

網路IPC 套接字之建立連線

如果處理的是面向連線的網路服務 sock stream或sock seqpacket 在開始交換資料以前,需要在請求服務的程序套接字 客戶端 和提供服務的程序套接字 伺服器 之間建立乙個連線。客戶端可以用connect建立乙個連線。include int connect int sockfd,con...