【发布时间】:2012-03-14 20:11:49
【问题描述】:
我正在用 C 语言编写一个基本的代理服务器。
我正在用 firefox 进行测试,我已经让服务器成功接收到浏览器的请求。
但现在我需要将它们发送到 Internet 以获取浏览器想要的页面,我很犹豫。
这是我目前的连接代码。
我不确定端口 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;
}
【问题讨论】:
-
回答了我自己的问题--> 端口应该是 80。主机名可以在浏览器请求中找到,例如如果你想要cs.mit.edu/answers.txt,你的主机名是 www.cs.mit.edu
标签: c http proxy network-programming http-proxy