0
我正在为C写一个基本的代理服务器。gethostbyname,连接到互联网?
我使用firefox进行测试,并且我已经让服务器成功接收浏览器的请求。
但现在我需要把它们发送到互联网,以获得浏览器想要的网页,我犹豫不决。
这是我现在的连接代码。
我不知道,如果8080端口是正确的,我不知道要放什么东西了“的gethostbyname”。 这是我希望得到一些建议的部分。
int sock = socket(PF_INET, SOCK_STREAM, 0);
if (sock < 0)
{
perror("socket() failed");
return EXIT_FAILURE;
}
struct sockaddr_in server;
struct hostent * hp;
server.sin_family = PF_INET;
hp = gethostbyname("localhost");
if (hp == NULL)
{
perror("Unknown host");
return EXIT_FAILURE;
}
bcopy((char *)hp->h_addr, (char *)&server.sin_addr, hp->h_length);
int port = 8080;
server.sin_port = htons(port);
if (connect(sock, (struct sockaddr *)&server, sizeof(server)) < 0)
{
perror("connect() failed");
return EXIT_FAILURE;
}
回答我自己question- - >端口应该是80.在浏览器请求中可以找到主机名,例如如果你想要http://www.cs.mit.edu/answers.txt,你的主机名是www.cs.mit.edu – Aerovistae 2012-03-14 20:26:27