網路程式設計 筆記(五) 回聲伺服器 客戶端

2021-07-05 22:01:35 字數 2762 閱讀 1726

1、執行平台mac

2、編輯器xcode

3、語言c

1、xcode建立新的工程

- file->new->project->os x->command line tool, 後面就是設定工程名了

2、xcode設定命令列引數 快捷鍵:cmd + <

- product->scheme->edit scheme… ->run ->arguments ->arguments passed on launch (依次新增引數)

- 參考:c++ in xcode

echo_server.c

//

// main.c

// echo_server

//// created by wu on 15/10/16.

//#include

#include

#include

#include

#include

#include

#define buf_size 1024

void error_handing(char *message);

int main(int argc, const

char * argv)

// 建立伺服器套接字,引數含義為:

// pf_inet 表示ipv4

// sock_stream 表示以流方式傳輸

// ipproto_tcp 表示使用tcp協議

serv_sock = socket(pf_inet, sock_stream, ipproto_tcp);

if(serv_sock == -1)

//繫結位址bind前需要準備好繫結的位址結構

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

serv_adr.sin_family = af_inet;

serv_adr.sin_addr.s_addr = htonl(inaddr_any);

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

//準備好sockaddr後,就可以把位址繫結到伺服器套接字上了

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

//繫結完成後就可以開始監聽客戶端發來的資訊了

//5 表示可以接受5個客戶端連線,就是連線請求等待佇列中最多為5

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

clnt_adr_sz = sizeof(clnt_adr);

for (int i = 0; i < 5; i++)

else

while ((str_len = read(clnt_sock, message, buf_size)) != 0)

close(clnt_sock);

}close(serv_sock);

return0;}

void error_handing(char *message)

echo_client.c
//

// main.c

// echo_client

//// created by wu on 15/10/16.

//#include

#include

#include

#include

#include

#include

#define buf_size 1024

void error_handing(char *message);

int main(int argc, const

char * argv)

// 建立客戶端套接字,引數含義為:

// pf_inet 表示ipv4

// sock_stream 表示以流方式傳輸

// ipproto_tcp 表示使用tcp協議

sock = socket(pf_inet, sock_stream, ipproto_tcp);

if (sock == -1)

//組織伺服器位址資訊

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

serv_adr.sin_family = pf_inet;

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

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

//向伺服器發起連線

if (connect(sock, (struct sockaddr*) &serv_adr, sizeof(serv_adr)))

else

while (1)

str_len = write(sock, message, strlen(message));

recv_len = 0;

while (recv_len < str_len)

recv_len += recv_cnt;

}message[str_len] = 0;

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

}close(sock);

return0;}

void error_handing(char *message)

網路程式設計 實現迭代回聲伺服器端 客戶端

1.直接跳轉到linux端 2.直接跳轉到windows端 掌握tcp套接字工作原理。在linux和windows作業系統上編寫迭代伺服器端 客戶端。讓伺服器端以迭代方式執行,為多個客戶端提供回聲服務。1 在linux作業系統上編寫程式,實現迭代回聲伺服器端 客戶端 1 改進實驗一中實現的hello...

回聲伺服器和客戶端的實現

客戶端 include include include include include include define buf size 1024 define rlt size 4 define opsz 4 void error handling char message int main int...

網路程式設計基礎(伺服器,客戶端)

伺服器端程式設計步驟 1 建立套接字socket,初始化網路結構struct sockaddr in 2 bind繫結 伺服器必須執行此函式,客戶端可選 3 listen 設定監聽數 4 accept接受連線請求 客戶端程式設計步驟 1 建立套接字socket,初始化網路結構 2 connect向伺...