伺服器端程式設計步驟:
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.伺服器收到請求後,解釋它,並以適當的方式操作它的資源。例如...