我被recv困扰了,求助各位
fim 2006-11-02 02:20:49 我的用意是想连接一个Socks5服务器,然后根据RFC的规范连接它。
相关RFC文档 http://www.faqs.org/rfcs/rfc1928.html
服务器名:202.113.115.110:8080
下面是我的代码:
WSAStartup($0202, WSAData);
S := socket(PF_INET, SOCK_STREAM, IPPROTO_IP);
Addr.sin_family := PF_INET;
Addr.sin_addr.S_addr := inet_addr('202.113.115.110');
Addr.sin_port := htons(port); //port=8080
Connect(S, Addr, SizeOf(Addr)); //连接没有问题
buffer[0] := 5; //buffer是一个字节数组
buffer[1] := 1;
buffer[2] := 0;
send(S, Buffer, 0); //send没有错误,返回发送缓冲的字节长度,每次都是3
ByteCount := recv(S, Buffer, 2, 0);
if ByteCount = SOCKER_ERROR then
Error := WSAGetLastError; //每次都是10054, Connection reset by peer
................
问题就出在recv这一步上,每次都是socket error 10054,我也换了其它的socks
代理,还是一样的错误。
我是用Delphi的,可能大家看得有些不习惯,不过我用的都是socket api,大家将就
着看吧。大家用c/c++或者mfc的类函数回贴都没有关系,我能理解意思就行了:-)