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

2021-06-16 13:43:58 字數 2282 閱讀 1828

伺服器端程式設計步驟:

1、建立套接字socket, 初始化網路結構struct  sockaddr_in

2、bind繫結  (伺服器必須執行此函式,客戶端可選)

3、listen 設定監聽數

4、accept接受連線請求

客戶端程式設計步驟:

1、建立套接字socket, 初始化網路結構

2、connect向伺服器傳送連線請求

/*************************

伺服器端

*************************/

#include

#include

#include

#include

#include

#include

#include

typedef struct sockaddr sa;  //給通用位址結構定義別名sa

int main(int argc, char *argv)

int listenfd, connfd;

struct sockaddr_in servaddr, peeraddr;  //宣告網路位址結構

socklen_t peerlen;

//***  int socket(int domain, int type, int protocol); //建立套接字,並將返回的套接字id賦給listenfd

if ((listenfd = socket(pf_inet, sock_stream, 0)) < 0)

bzero(&servaddr, sizeof(servaddr)); //清零網路位址結構

servaddr.sin_family  = pf_inet;  //internet協議

servaddr.sin_port = htons(atoi(argv[2]));  //atoi函式將字串轉為整型,htons函式將主機位元組序轉為網路位元組序

servaddr.sin_addr.s_addr = inet_addr(argv[1]); //inet_addr函式將ip位址的字串形式轉為無符號整型的形式

//***  int bind(int sockfd, const struct sockaddr *addr, socklen_t addrlen);

if (bind(listenfd, (sa*)(&servaddr), sizeof(servaddr)) < 0)

//*** int listen(int sockfd, int backlog);

if (listen(listenfd, 5) < 0)  //設定監聽鏈結的最大數目,backlog指定了正在等待連線的最大佇列長度

peerlen = sizeof(peeraddr);

while (1)

printf("connect from [%s:%d]\n", inet_ntoa(peeraddr.sin_addr), //inet_ntoa函式將ip位址的整型形式轉為字串形式

ntohs(peeraddr.sin_port)); //ntohs函式將網路的位元組序轉為主機的位元組序

close(connfd);

}return 0;}

/*************************

客戶端************************/

#include

#include

#include

#include

#include

#include

#include

#include

typedef struct sockaddr sa;

int main(int argc, char *argv)

int sockfd;

struct sockaddr_in servaddr;

if ((sockfd = socket(pf_inet, sock_stream, 0)) < 0)

bzero(&servaddr, sizeof(servaddr));

servaddr.sin_family  = pf_inet;

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

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

if (connect(sockfd, (sa*)&servaddr, sizeof(servaddr)) < 0)

}close(sockfd);

return 0;

}

Linux 網路程式設計 基本伺服器 客戶端

前言 我們開始學習網路程式設計,儘管接下來的速度會非常快,但是我還是希望事事具細。首先我們以乙個回射伺服器來說說流程。變數部分 listenfd 監聽字 connfd 鏈結字 childpid 伺服器程序id cliaddr 客戶端套接字結構體 servaddr 服務端套接字結構體 函式部分 soc...

網路程式設計(伺服器與客戶端交流)

網路程式設計 tcp協議 c s程式 伺服器與客戶端 b s是網頁與客戶端 需要使用兩個類,來編寫tcp協議的cs程式 1.serversocket 搭建伺服器 2.socket 搭建客戶端 兩方使用socket 套接字,通訊端點 進行交接 serversocket 構造方法 serversocke...

客戶端 伺服器程式設計模型

客戶端和伺服器是程序,不是主機。客戶端 伺服器模型中的基本操作是事務。乙個客戶端 伺服器事務由四步組成 1.當乙個客戶端需要服務時,它向伺服器傳送乙個請求,發起乙個事務。例如,當web瀏覽器需要乙個檔案時,它就傳送乙個請求給web伺服器。2.伺服器收到請求後,解釋它,並以適當的方式操作它的資源。例如...