以下是一个简单的 C 客户端应用程序示例,连接到主机并发送请求:
#include
#include
#include
#include
#include
#include
int main(int argc, char* argv[]) {
if (argc != 3) {
fprintf(stderr, "Usage: %s \n", argv[0]);
exit(1);
}
char* ip_address = argv[1];
int port = atoi(argv[2]);
struct sockaddr_in server_addr;
memset(&server_addr, 0, sizeof(server_addr));
server_addr.sin_family = AF_INET;
server_addr.sin_addr.s_addr = inet_addr(ip_address);
server_addr.sin_port = htons(port);
int sock = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
if (sock < 0) {
perror("socket");
exit(1);
}
if (connect(sock, (struct sockaddr*)&server_addr, sizeof(server_addr)) < 0) {
perror("connect");
exit(1);
}
char* request = "GET / HTTP/1.1\r\nHost: localhost\r\n\r\n";
if (send(sock, request, strlen(request), 0) < 0) {
perror("send");
exit(1);
}
char response[1024];
int recv_len = recv(sock, response, sizeof(response), 0);
if (recv_len <= 0) {
perror("recv");
exit(1);
}
response[recv_len] = '\0';
printf("Response from server:\n%s\n", response);
close(sock);
return 0;
}
这个程序连接到指定的 IP 地址和端口,并发送 HTTP GET 请求。在实际使用中,您可以将请求更改为您需要的任何内容。recv 函数接收服务器的响应,并在标准输出上打印出来。
要编译程序,请将示例代码复制到名为“client.c”的文件中。使用以下