基於TCP 的網路程式設計步驟

2021-05-28 13:18:21 字數 2415 閱讀 5425

基於tcp-------伺服器端:

1.建立乙個socket,用函式socket()

2.繫結ip位址、埠等資訊到socket上,用函式bind()

3.設定允許的最大連線數,用函式listen()

4.等待來自客戶端的連線請求,用函式accept()

5.收發資料,用函式send()和recv(),或者read()和write()

6.關閉網路連線

#include

#include

#include

#include

#include

#include

#include

#include

#define portnumber 3333

int main(int argc, char *argv)

/* 伺服器端填充 sockaddr結構 */

bzero(&server_addr,sizeof(struct sockaddr_in)); // 初始化,置0

server_addr.sin_family=af_inet;                 // internet

server_addr.sin_addr.s_addr=htonl(inaddr_any);  // (將本機器上的long資料轉化為網路上的long資料)和任何主機通訊  //inaddr_any 表示可以接收任意ip位址的資料,即繫結到所有的ip

//server_addr.sin_addr.s_addr=inet_addr("192.168.1.1");  //用於繫結到乙個固定ip,inet_addr用於把數字加格式的ip轉化為整形ip

server_addr.sin_port=htons(portnumber);         // (將本機器上的short資料轉化為網路上的short資料)埠號

/* **sockfd描述符到ip位址 */

if(bind(sockfd,(struct sockaddr *)(&server_addr),sizeof(struct sockaddr))==-1)

/* 設定允許連線的最大客戶端數 */

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

/* 結束通訊 */

close(sockfd);

exit(0);

}基於tcp--------客戶端:

1.建立乙個socket,用函式socket()

2.設定要連線的伺服器的ip位址和埠等屬性

3.連線伺服器,用函式connect()

4.收發資料,用函式send()和recv(),或者read()和write()

5.關閉網路連線

#include

#include

#include

#include

#include

#include

#include

#include

#define portnumber 3333

int main(int argc, char *argv)

if((host=gethostbyname(argv[1]))==null)

/* 客戶程式開始建立 sockfd描述符 */

if((sockfd=socket(af_inet,sock_stream,0))==-1) // af_inet:internet;sock_stream:tcp

/* 客戶程式填充服務端的資料 */

bzero(&server_addr,sizeof(server_addr)); // 初始化,置0

server_addr.sin_family=af_inet;          // ipv4

server_addr.sin_port=htons(portnumber);  // (將本機器上的short資料轉化為網路上的short資料)埠號

server_addr.sin_addr=*((struct in_addr *)host->h_addr); // ip位址

/* 客戶程式發起連線請求 */

if(connect(sockfd,(struct sockaddr *)(&server_addr),sizeof(struct sockaddr))==-1)

/* 連線成功了 */

printf("please input char:\n");

/* 傳送資料 */

fgets(buffer,1024,stdin);

write(sockfd,buffer,strlen(buffer));

/* 結束通訊 */

close(sockfd);

exit(0);

}

基於TCP的網路程式設計

伺服器端程式 include include pragma comment lib,ws2 32.lib int main if lobyte wsadata.wversion 1 hibyte wsadata.wversion 1 printf version d.d n lobyte wsada...

基於TCP的網路程式設計

載入winsock庫,繫結ws2 32.lib動態鏈結庫 建立socket套接字 將套接字繫結 bind 到指定的本機ip位址和埠上 將套接字設為監聽模式 listen 準備接受客戶端的請求 等待客戶端請求的到來 accept 並返回新的套接字進行通訊 伺服器和客戶端相互通訊 send recv 返...

基於TCP IP的網路程式設計步驟

一.tcp流式套接字的程式設計步驟 在使用之前須鏈結庫函式 工程 設定 link 輸入ws2 32.lib 伺服器端程式 1 載入套接字型檔 2 建立套接字 socket 3 將套接字繫結到乙個本地位址和埠上 bind 4 將套接字設為監聽模式,準備接收客戶請求 listen 5 等待客戶請求到來 ...