伺服器和客戶端的通訊

2021-08-13 10:14:01 字數 2281 閱讀 8773

伺服器

#include 

#include

#include

#include

#include

#include

#include

#include

#define port 8888

int main()

; struct sockaddr_in server_addr; //用於存放伺服器本身的資訊,包括自己的port和ip

struct sockaddr_in client_addr; //接受客戶端連線的時候, 用於存放客戶端資訊

printf("start server!\n");

sockfd = socket(pf_inet, sock_stream, 0); //建立socket,處理客戶端的連線,不用於傳送資訊

if (-1 == sockfd)

memset(&server_addr, 0, sizeof(server_addr));

server_addr.sin_family = pf_inet; //位址族

server_addr.sin_port = port; //指定socket的埠號

server_addr.sin_addr.s_addr = inet_addr("192.168.1.111"); //本機ip

ret = bind(sockfd, (struct sockaddr *)&server_addr, sizeof(server_addr)); //上述資訊繫結到socket

if (-1 == ret)

printf("listening...\n");

ret = listen(sockfd, 5); //監聽,是否有客戶端發起連線

if(-1 == ret)

int length = sizeof(client_addr);

fd = accept(sockfd, (struct sockaddr *)&client_addr, &length);//接受客戶端的連線,返回值用於傳送資訊

if (-1 == fd)

printf("accept %d , port %d\n", fd, client_addr.sin_port);

while (1)

if (!strcmp(buf, "bye"))

printf("recv from client : %s\n", buf);

memset(buf, 0, sizeof(buf));

}close(fd);

close(sockfd);

return

0;}

客戶端

#include 

#include

#include

#include

#include

#include

#include

#define port 8888

int main()

; sockfd = socket(pf_inet, sock_stream, 0); //建立socket,既用於連線,又用於傳送訊息

if (-1 == sockfd)

memset(&server_addr, 0, sizeof(server_addr)); //都是伺服器的資訊

server_addr.sin_family = pf_inet;

server_addr.sin_port = port;

server_addr.sin_addr.s_addr = inet_addr("192.168.1.111");

printf("start connecting...\n");

ret = connect(sockfd, (struct sockaddr *)&server_addr, sizeof(server_addr));//發起連線

if (-1 == ret)

while (1)

if (!strcmp(buf, "bye"))

memset(buf, 0, sizeof(buf));

}close(sockfd);

return

0;}

伺服器和客戶端 tcp通訊

在vs2013的環境下,伺服器 如下 include include stdafx.h include pragma comment lib,ws2 32.lib using namespace std define buffer rev 1024 define buffer send 1024 i...

客戶端與伺服器端通訊

關係圖 傳送 邏輯管理器 處理邏輯傳送指令 指令解析管理器 根據協議xml解析指令成二進位制資料 把二進位制資料傳給伺服器 接收 伺服器傳送二進位制資料到客戶端 指令解析管理器 根據協議xml解析二進位制資料 根據解析資料對映到邏輯類來處理 2 1 3 20 2,2 21 1,1,2 指令名和指令名...

C Socket TCP 客戶端,伺服器端通訊

客戶端與伺服器通訊,通過ip 識別主機 埠號 識別應用程式 埠號 可自行設定,但通常為4位。伺服器端 using system using system.collections.generic using system.linq using system.net using system.net.s...