写出相应的客户端代码,注意客户端也要同时具备接受和发送消息给服务端的能力
时间: 2023-11-06 10:05:45 浏览: 81
好的,下面是一个使用C语言实现的TCP客户端代码。它可以向指定的服务器发送消息,并接收服务器的回复。
```
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <string.h>
int main(int argc, char* argv[]) {
if (argc != 3) {
printf("请输入服务器的IP地址和端口号!\n");
exit(-1);
}
// 1. 创建socket
int clientSocket = socket(AF_INET, SOCK_STREAM, 0);
if (-1 == clientSocket) {
printf("创建socket失败!\n");
exit(-1);
}
// 2. 连接服务器
struct sockaddr_in sAddr = {0};
sAddr.sin_family = AF_INET;
sAddr.sin_addr.s_addr = inet_addr(argv[1]);
sAddr.sin_port = htons(atoi(argv[2]));
int r = connect(clientSocket, (struct sockaddr*)&sAddr, sizeof(sAddr));
if (-1 == r) {
printf("连接服务器失败!\n");
close(clientSocket);
exit(-1);
}
// 3. 通信
char buff[256] = {0};
while (1) {
// 从标准输入读取数据并发送给服务器
printf("请输入要发送给服务器的数据:");
fgets(buff, 255, stdin);
send(clientSocket, buff, strlen(buff), 0);
// 接收服务器发送的数据并打印出来
r = recv(clientSocket, buff, 255, 0);
if (r > 0) {
buff[r] = 0;
printf("服务器说>> %s\n", buff);
}
}
// 4. 关闭连接
close(clientSocket);
return 0;
}
```
这个客户端程序的流程与服务器程序类似,不同之处在于它是先连接服务器,然后再进行通信。在通信过程中,它先使用fgets函数从标准输入读取数据,并使用send函数将数据发送给服务器。然后使用recv函数接收服务器发送的数据,并打印出来。在这个程序中,服务器和客户端都可以进行消息的发送和接收。
阅读全文