C语言实现scoket通信。
服务器端:
#include <sys/types.h> #include <sys/socket.h> // 包含套接字函数库 #include <stdio.h> #include <netinet/in.h> // 包含AF_INET相关结构 #include <arpa/inet.h> // 包含AF_INET相关操作的函数 #include <unistd.h> int main() { int server_sockfd, client_sockfd; // 用于保存服务器和客户套接字标识符 int server_len, client_len; // 用于保存服务器和客户消息长度 struct sockaddr_in server_address; // 定义服务器套接字地址 struct sockaddr_in client_address; // 定义客户套接字地址 server_sockfd = socket(AF_INET, SOCK_STREAM, 0); // 定义套接字类型 server_address.sin_family = AF_INET; // 定义套接字地址中的域 server_address.sin_addr.s_addr = inet_addr("127.0.0.1"); // 定义套接字地址 server_address.sin_port = 9734; // 定义套接字端口 server_len = sizeof(server_address); bind(server_sockfd, (struct sockaddr *) &server_address, server_len); // 定义套接字名字 listen(server_sockfd, 5); // 创建套接字队列 while (1) { char ch; printf("服务器等待消息\n"); client_len = sizeof(client_address); client_sockfd = accept(server_sockfd, // 接受连接 (struct sockaddr *) &client_address, (socklen_t *__restrict) &client_len); read(client_sockfd, &ch, 1); // 读取客户消息 ch++; write(client_sockfd, &ch, 1); // 向客户传送消息 close(client_sockfd); // 关闭连接 } }
客户端:
#include <sys/types.h> #include <sys/socket.h> // 包含套接字函数库 #include <stdio.h> #include <netinet/in.h> // 包含AF_INET相关结构 #include <arpa/inet.h> // 包含AF_INET相关操作的函数 #include <unistd.h> int main() { int sockfd; // 用于保存客户套接字标识符 int len; // 用于客户消息长度 struct sockaddr_in address; // 定义客户套接字地址 int result; char ch = 'A'; // 定义要传送的消息 sockfd = socket(AF_INET,SOCK_STREAM, 0); // 定义套接字类型 address.sin_family = AF_INET; // 定义套接字地址中的域 address.sin_addr.s_addr = inet_addr("127.0.0.1"); // 定义套接字地址 address.sin_port = 9734; // 定义套接字端口 len = sizeof(address); result = connect(sockfd, (struct sockaddr *) &address, len); // 请求连接 if (result == -1) { perror("连接失败"); return 1; } write(sockfd, &ch, 1); // 向服务器传送消息 read(sockfd, &ch, 1); // 从服务器接收消息 printf("来自服务器的消息是%c\n", ch); close(sockfd); // 关闭连接 return 0; }
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。