gpt4 book ai didi

c - 套接字编程中没有主机错误的路由

转载 作者:太空宇宙 更新时间:2023-11-04 04:34:09 24 4
gpt4 key购买 nike

我正在编写一个连接到 IP 地址“172.31.1.34”并发送消息的简单客户端程序。一切正常,但我无法从服务器收到任何消息。错误说“没有通往主机的路线”。我的代码

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>

int main()
{
struct sockaddr_in server,client;
int s1,s2,len;
int n;
char buffer[500];

strcpy(buffer,"GET http://172.31.1.34/ HTTP/1.0\n\n");
bzero((char *)&client,sizeof(client));
client.sin_port = htons(80);
client.sin_addr.s_addr = inet_addr("172.31.1.34");
client.sin_family = AF_INET;
s2 = socket(AF_INET,SOCK_DGRAM,0);

if(connect(s2,(struct sockaddr *)&client,sizeof(client)) == -1) {
perror("can't connect\n");
exit(1);
}
n = send(s2,buffer,strlen(buffer),0);
if(n < 0) {
perror("message not sent");
exit(1);
}
while(1) {
memset(buffer,0,sizeof(buffer));
n = recv(s2,buffer,500,0);
if(n < 0) {
perror("coudnot read");
exit(1);
}
buffer[n] = '\0';
printf("%s",buffer);
}

close(s2);
return 0;
}

最佳答案

为什么要使用 SOCK_DGRAM?那是针对 UDP 数据包的。 HTML 使用 TCP。你应该使用 SOCK_STREAM

关于c - 套接字编程中没有主机错误的路由,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33014286/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com