本机两件两个tcpcleint客户端
时间: 2023-10-30 22:07:17 浏览: 48
如果你想在本机上创建两个TCP客户端进程,你可以使用套接字(socket)编程来实现。
以下是一个示例代码,展示了如何在本机上创建两个TCP客户端进程:
**client1.c:**
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <arpa/inet.h>
#define PORT 8080
int main() {
int sock = socket(AF_INET, SOCK_STREAM, 0);
if (sock == -1) {
perror("socket");
return 1;
}
struct sockaddr_in server_addr;
server_addr.sin_family = AF_INET;
server_addr.sin_port = htons(PORT);
server_addr.sin_addr.s_addr = inet_addr("127.0.0.1");
if (connect(sock, (struct sockaddr*)&server_addr, sizeof(server_addr)) == -1) {
perror("connect");
return 1;
}
char* message = "Hello from Client 1";
if (send(sock, message, strlen(message), 0) == -1) {
perror("send");
return 1;
}
close(sock);
return 0;
}
```
**client2.c:**
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <arpa/inet.h>
#define PORT 8080
int main() {
int sock = socket(AF_INET, SOCK_STREAM, 0);
if (sock == -1) {
perror("socket");
return 1;
}
struct sockaddr_in server_addr;
server_addr.sin_family = AF_INET;
server_addr.sin_port = htons(PORT);
server_addr.sin_addr.s_addr = inet_addr("127.0.0.1");
if (connect(sock, (struct sockaddr*)&server_addr, sizeof(server_addr)) == -1) {
perror("connect");
return 1;
}
char* message = "Hello from Client 2";
if (send(sock, message, strlen(message), 0) == -1) {
perror("send");
return 1;
}
close(sock);
return 0;
}
```
编译和运行代码:
```shell
$ gcc client1.c -o client1
$ gcc client2.c -o client2
$ ./client1
$ ./client2
```
这两个客户端进程会连接到本地的服务器(IP地址为 127.0.0.1,端口号为 8080),并向服务器发送一条消息。你可以根据自己的需求修改服务器的 IP 地址和端口号。
请确保在运行客户端之前,你已经启动了一个对应的服务器进程,以便接收客户端的连接和消息。