最近点对问题c语言代码
时间: 2024-09-27 09:00:50 浏览: 22
在C语言中,点对点通信(Point-to-Point Communication,简称P2P)通常不是直接通过标准库提供的,因为C语言本身并不内置网络通信功能。然而,你可以使用一些外部库如Socket API或者更现代的API如Winsock(Windows平台),libsocket(Linux等系统),来进行网络编程实现两个程序之间的数据交换。
下面是一个简单的C语言代码片段,使用socket API创建一个基本的点对点TCP连接:
```c
#include <stdio.h>
#include <stdlib.h>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <unistd.h>
#define PORT 12345
int main(int argc, char *argv[]) {
int server_fd, client_fd;
struct sockaddr_in server_addr, client_addr;
socklen_t addr_len = sizeof(struct sockaddr_in);
// 创建服务器套接字
if ((server_fd = socket(AF_INET, SOCK_STREAM, 0)) == -1) {
perror("Failed to create socket");
return 1;
}
// 绑定地址
server_addr.sin_family = AF_INET;
server_addr.sin_port = htons(PORT);
server_addr.sin_addr.s_addr = INADDR_ANY;
if (bind(server_fd, (struct sockaddr *)&server_addr, sizeof(server_addr)) == -1) {
perror("Bind failed");
close(server_fd);
return 1;
}
// 开始监听
listen(server_fd, 3); // backlog=3表示最多有三个未处理的客户端连接
// 接受客户端连接
printf("Server is listening...\n");
if ((client_fd = accept(server_fd, (struct sockaddr *)&client_addr, &addr_len)) == -1) {
perror("Accept failed");
close(server_fd);
return 1;
}
printf("Connected with client %s:%d\n",
inet_ntoa(client_addr.sin_addr),
ntohs(client_addr.sin_port));
// 发送消息到客户端
send(client_fd, "Hello from server", strlen("Hello from server"), 0);
// 关闭连接
close(client_fd);
return 0;
}
```
这个代码示例创建了一个服务器,等待来自其他客户端的连接,并发送一条消息。如果你想接收客户端的消息并响应,你需要在客户端也做类似的操作。