#include #include #include #include #include #include #include #include #include #include #include #include #define server_port 6666
/* * 監聽後,一直處於accept阻塞狀態,
* 直到有客戶端連線,
* 當客戶端如數quit後,斷開與客戶端的連線
* */
int main()
bzero(&server_addr, sizeof(server_addr));
//初始化伺服器端的套接字,並用htons和htonl將埠和位址轉成網路位元組序
server_addr.sin_family = af_inet;
server_addr.sin_port = htons(server_port);
//ip可是是本伺服器的ip,也可以用巨集inaddr_any代替,代表0.0.0.0,表明所有位址
server_addr.sin_addr.s_addr = htonl(inaddr_any);
//對於bind,accept之類的函式,裡面套接字引數都是需要強制轉換成(struct sockaddr *)
// bind三個引數:伺服器端的套接字的檔案描述符,
if(bind(serversocket, (struct sockaddr *)&server_addr, sizeof(server_addr)) < 0)
//設定伺服器上的socket為監聽狀態
if(listen(serversocket,5)<0)
while(1)
printf("等待訊息...\n");
//inet_ntoa ip位址轉換函式,將網路位元組序ip轉換為點分十進位制ip
//表示式:char *inet_ntoa (struct in_addr);
printf("ip is %s\n", inet_ntoa(clientaddr.sin_addr));
printf("port is %d\n", htons(clientaddr.sin_port));
while(1)
buffer[idatanum] = '\0';
if(strcmp(buffer, "quit") == 0)
break;
printf("%s\n", buffer);
printf("傳送訊息:");
scanf("%s", buffer);
printf("\n");
send(client, buffer, strlen(buffer), 0);
if(strcmp(buffer, "quit") == 0)
break;
} }close(serversocket);
return 0;
}
#include #include #include #include #include #include #include #include #include #include #include #include #define server_port 6666
/* * 連線到伺服器後,會不停迴圈,等待輸入,
* 輸入quit後,斷開與伺服器的連線
* */
int main()
serveraddr.sin_family = af_inet;
serveraddr.sin_port = htons(server_port);
//指定伺服器端的ip,本地測試:127.0.0.1
//inet_addr()函式,將點分十進位制ip轉換成網路位元組序ip
serveraddr.sin_addr.s_addr = inet_addr("127.0.0.1");
if(connect(clientsocket, (struct sockaddr *)&serveraddr, sizeof(serveraddr)) < 0)
printf("連線到主機...\n");
網路程式設計學習筆記 socket程式設計
本地的程序間通訊 ipc 有很多種方式,總結為4類 在本地可以通過程序pid來唯一標識乙個程序,但是在網路中這是不可以的。tcp ip協議族幫我們解決了這個問題,網路層的 ip位址 可以唯一標識網路中的主機,而傳輸層的 協議 埠 可以唯一標識主機中的應用程式 程序 這樣利用三元組 ip位址 協議 埠...
網路程式設計之SOCKET程式設計學習筆記
使用tcp ip協議的應用程式通常採用應用程式設計介面 unix bsd的套接字 socket 和unix system v的tli 已經被淘汰 來實現網路程序之間的通訊。就目前而言,幾乎所有的應用程式都是採用socket,而現在又是網路時代,網路中程序通訊是無處不在,這就是我為什麼說 一切皆soc...
socket網路程式設計筆記
一 基礎知識 xinetd 開源伺服器,監聽指定埠 1000以上 b s模式 http協議,協議頭 資料 方法get 協議頭部分 可選 connect tyoe 回些客戶端的資料的型別 必須 r n 資料tcp面向連線的通訊協議,只能用於端到端的通訊 通過三次握手建立連線,有反饋udp面向無連線的,...