TCP IP 第1章 理解網路程式設計和套接字

2021-09-14 01:29:33 字數 2501 閱讀 8386

1.socket函式建立套接字。

2.呼叫bind函式給套接字分配ip位址和埠號。

3.呼叫listen函式轉為可接受請求狀態。

4.呼叫accept函式受理連線請求

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

void error_handling(char *message);

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

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);//ip位址,無論哪個ip都可以連線上

serv_addr.sin_port=htons(atoi(ar**[1]));//埠號

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

error_handling("bind() error");

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)

error_handling("accept() error");

write(clnt_sock,mess,sizeof(mess));

close(clnt_sock);

close(serv_sock);

return 0;

}void error_handling(char* s)

1.建立套接字。

2.呼叫connect函式向伺服器端傳送連線請求。

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

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

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(ar**[1]);

serv_addr.sin_port=htons(atoi(ar**[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() erroe!");

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

close(sock);

return 0;

}void error_handling(char* s)

系統分配給檔案或套接字的整數,描述符從3開始以由小到大的順序編號,因為0、1、2是分配給標準i/o的描述符。分別是

0 標準輸入、1 標準輸出、2 標準錯誤。

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

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

void error_handling(char* message)

#include #include #include #include #define buf_size 100

void error_handling(char* message);

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

void error_handling(char* message)

TCP IP網路程式設計 第3章 套接字位址結構

struct sockaddr in 該結構體中的in addr定義如下 struct in addr 上面的in addr t為uint32 t型別,即unsigned 32 bit int unsigned long 定義在標頭檔案sys types.h中 in port t為uint16 t型...

UNIX網路程式設計卷1 第1章 簡介

要編寫通過計算機網路通訊的程式,首先要確定這些程式相互通訊所用的協議。一般認為web伺服器程式是乙個長時間執行的程式 守護程式,daemon 它只在響應來自網路的請求時才傳送網路訊息。協議的另一端是web客戶程式,如某種瀏覽器,與伺服器程序的通訊總是由客戶程序發起。在設計網路應用時,確定總是由客戶發...

讀書筆記 TCP IP網路程式設計 第7章 半關閉

半關閉 斷開連線的一部分,可以傳輸資料但是無法接收,或可以接收資料但無法傳輸。closesocket 函式會同時斷開輸入及輸出流。sd receive 斷開輸入流 sd send 斷開輸出流 sd both 同時斷開i o流 shutdown 函式,關閉輸出流時,既傳送了eof,還保留了輸入流。re...