帮我写个简易的c++ p2p程序
时间: 2024-05-14 20:17:29 浏览: 20
好的,以下是一个简单的 C 语言 P2P 程序示例:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <unistd.h>
#define PORT 8888
int main(int argc, char *argv[]) {
int sockfd;
struct sockaddr_in addr;
char buffer[1024];
// 创建 socket
sockfd = socket(AF_INET, SOCK_STREAM, 0);
if (sockfd == -1) {
printf("Failed to create socket\n");
return -1;
}
// 设置地址
memset(&addr, 0, sizeof(addr));
addr.sin_family = AF_INET;
addr.sin_addr.s_addr = inet_addr(argv[1]);
addr.sin_port = htons(PORT);
// 连接到目标主机
if (connect(sockfd, (struct sockaddr*)&addr, sizeof(addr)) != 0) {
printf("Failed to connect to host\n");
close(sockfd);
return -1;
}
printf("Connected to %s:%d\n", inet_ntoa(addr.sin_addr), ntohs(addr.sin_port));
// 读取用户输入并发送到目标主机
while (1) {
printf("Enter message: ");
fgets(buffer, sizeof(buffer), stdin);
if (send(sockfd, buffer, strlen(buffer), 0) == -1) {
printf("Failed to send message\n");
close(sockfd);
return -1;
}
}
// 关闭 socket
close(sockfd);
return 0;
}
```
这个程序简单地创建一个 TCP socket 并连接到指定的主机,然后不断地读取用户输入并发送到目标主机。你可以根据自己的需求来修改这个程序。同时,你需要编写一个类似的程序来接收来自其他主机的消息。
相关推荐
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![zip](https://img-home.csdnimg.cn/images/20210720083736.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![](https://csdnimg.cn/download_wenku/file_type_ask_c1.png)
![application/x-rar](https://img-home.csdnimg.cn/images/20210720083606.png)