1 1 理解網路程式設計和套接字

2021-07-26 05:04:25 字數 2235 閱讀 2065

最近在看網路程式設計相關的知識,網上說尹聖雨的《tcpip網路程式設計》不錯,遂網上找了分電子版本的書籍,記錄下閱讀筆記。

tcp套接字通訊可以模擬**機,接聽方流程如下:

socket  —— 安裝**機

bind —— 分配**號碼

listen —— 連線**線

accept —— 拿起話筒

打**端比較簡單,只需要:

socket

connect

舉例:伺服器端收到連線請求後向請求者返回「hello world!」

#include #include #include #include #include #include void error_handling(char *message);

int main(int argc, char *argv)

serv_sock = socket(pf_inet,sock_stream,0);

if(serv_sock == -1)

memset(&serv_addr,0,sizeof(serv_addr));

serv_addr.sin_family=af_inet;

serv_addr.sin_addr.s_addr=htonl(inaddr_any);

serv_addr.sin_port=htons(atoi(argv[1]));

if(bind(serv_sock,(struct sockaddr*)&serv_addr,sizeof(serv_addr)) == -1)

if(listen(serv_sock,5) == -1)

clnt_addr_size = sizeof(clnt_addr);

clnt_sock = accept(serv_sock,(struct sockaddr *)&clnt_addr,&clnt_addr_size);

if(clnt_sock == -1)

write(clnt_sock,message,sizeof(message));

close(clnt_sock);

close(serv_sock);

return 0;

}void error_handling(char *message)

對應的client端如下:

#include #include #include #include #include #include void error_handling(char *message);

int main(int argc,char *argv)

sock = socket(pf_inet,sock_stream,0);

if(sock == -1)

memset(&serv_addr,0,sizeof(serv_addr));

serv_addr.sin_family = af_inet;

serv_addr.sin_addr.s_addr = inet_addr(argv[1]);

serv_addr.sin_port = htons(atoi(argv[2]));

if(connect(sock,(struct sockaddr *)&serv_addr,sizeof(serv_addr)) == -1)

str_len = read(sock,message,sizeof(message)-1);

if(str_len == -1)

printf("message from server : %s \n",message);

close(sock);

return 0;

}void error_handling(char *message)

client 執行結果如下:

alex@alex-virtualbox:~/share/test/tcpip$ ./hello_client 127.0.0.1 9190

message from server : hello world!

alex@alex-virtualbox:~/share/test/tcpip$

server執行結果如下:

alex@alex-virtualbox:~/share/test/tcpip$ ./hello_server 9190

alex@alex-virtualbox:~/share/test/tcpip$

理解網路程式設計和套接字

網路程式設計中接受連線請求的套接字的建立過程 1.呼叫socket函式建立套接字 2.呼叫bind函式分配ip位址和埠號 3.呼叫listen函式轉為可接收請求狀態 4.呼叫accept函式受理連線請求 int socket int domain,int type,int protocol 函式so...

理解網路程式設計和套接字

include include include include void error handling char message int main void void error handling char message 編譯測試 gcc low open.c o low open low ope...

一 理解網路程式設計和套接字

第一步 呼叫socket函式建立套接字 第三步 呼叫listen函式轉為可接收請求狀態 第四步 呼叫accept函式受理連線請求 include include include include include include void error handling char message int ...