从命令行读入服务器的IP地址;循环从命令行读入字符串,传递给服务器,并接收、显示服务器返回的字符串和服务器的地址信息使用c语言实现
时间: 2023-03-23 17:03:38 浏览: 81
1. 从命令行读入服务器的IP地址:
您可以使用以下命令从命令行读取服务器的IP地址:
```
$ read -p "请输入服务器IP地址: " server_ip
```
这将提示用户输入服务器的IP地址,并将其存储在名为`server_ip`的变量中。
2. 通过命令行发送和接收数据:
您可以使用以下C语言代码片段来通过命令行发送和接收数据:
```c
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <unistd.h>
#define MAX_BUFFER_SIZE 1024
int main(int argc, char *argv[]) {
int sock;
struct sockaddr_in server_addr;
char buffer[MAX_BUFFER_SIZE];
char *message = "Hello, server!";
// 创建套接字
sock = socket(AF_INET, SOCK_STREAM, 0);
if (sock < 0) {
perror("创建套接字失败");
exit(1);
}
// 设置服务器地址
memset(&server_addr, 0, sizeof(server_addr));
server_addr.sin_family = AF_INET;
server_addr.sin_addr.s_addr = inet_addr(argv[1]);
server_addr.sin_port = htons(8080);
// 连接服务器
if (connect(sock, (struct sockaddr *)&server_addr, sizeof(server_addr)) < 0) {
perror("连接服务器失败");
exit(1);
}
// 发送数据到服务器
if (send(sock, message, strlen(message), 0) < 0) {
perror("发送数据失败");
exit(1);
}
// 从服务器接收数据
if (recv(sock, buffer, MAX_BUFFER_SIZE, 0) < 0) {
perror("接收数据失败");
exit(1);
}
printf("收到服务器的响应:%s\n", buffer);
close(sock);
return 0;
}
```
该代码片段将创建一个TCP套接字,并连接到指定的服务器IP地址和端口。它将发送一个字符串消息到服务器,并接收来自服务器的响应。然后,它将打印服务器响应的内容,并关闭套接字。
阅读全文