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

2021-08-19 21:50:15 字數 2297 閱讀 9251

第一步:呼叫socket函式建立套接字

第三步:呼叫listen函式轉為可接收請求狀態

第四步:呼叫accept函式受理連線請求

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

int main(int argc, const char * argv)

serv_sock = socket(pf_inet, sock_stream, 0);

if(serv_sock == -1)

error_handling("socket() error");

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)

error_handling("bind() error");

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

error_handling("listen() error");

clnt_addr_size = sizeof(clnt_addr);

//如果沒有收到請求,則不返回,只到有連線請求為止

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

if(clnt_sock == -1)

error_handling("accept() error");

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

close(clnt_sock);

close(serv_sock);

return 0;

}

第一步:呼叫socket函式建立套接字

第二步:呼叫connect函式向伺服器端傳送連線請求

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

int main(int argc, const char * argv)

sock = socket(pf_inet, sock_stream, 0);

if(sock == -1)

error_handling("socket() error");

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)

error_handling("connect() error");

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

if(str_len == -1)

error_handling("read() error");

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

close(sock);

return 0;

}

1.在linux中,socket被認為是檔案的一種,因此在網路資料傳輸的過程中可以使用檔案i/o相關的函式。windows則區分socket和檔案。

2.linux中的檔案描述符(window中的檔案控制代碼)是系統分配給檔案或套接字的整數。標準輸入/輸出/錯誤在linux的檔案描述符分別為0,1,2.

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

網路程式設計中接受連線請求的套接字的建立過程 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...

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

最近在看網路程式設計相關的知識,網上說尹聖雨的 tcpip網路程式設計 不錯,遂網上找了分電子版本的書籍,記錄下閱讀筆記。tcp套接字通訊可以模擬 機,接聽方流程如下 socket 安裝 機 bind 分配 號碼 listen 連線 線 accept 拿起話筒 打 端比較簡單,只需要 socket ...