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向伺...