SOCKET5协议的问题:向服务器发送命令成功,但为何recv却无法返回了?
WSADATA wsa;
SOCKET s;
WSAStartup( MAKEWORD(2,2),&wsa );
memset ( &m_serverAddr,0x00,sizeof( m_serverAddr ) );
m_serverAddr.sin_family = AF_INET ;
m_serverAddr.sin_addr.S_un.S_addr = inet_addr ( "192.168.1.36" );
m_serverAddr.sin_port = htons ( 1080 );
s = socket( AF_INET , SOCK_STREAM, IPPROTO_TCP );
int intError = SOCKET_ERROR ;
char szSOCKET5CMD[512+10];
char szRTBUFF[512+10];
memset( szSOCKET5CMD,0x00,sizeof(szSOCKET5CMD));
memset( szRTBUFF,0x00,sizeof(szRTBUFF));
intError = connect ( s ,(SOCKADDR *)&m_serverAddr , sizeof
(m_serverAddr ) );
if ( SOCKET_ERROR == intError )
{
DisplayMessage("Connect to Server Failed ! --- connect . ");
return ;
}
szSOCKET5CMD[0] = 5 ; // SOCKET5 Protocol
szSOCKET5CMD[1] = 2 ; // 02 CMD : bind
szSOCKET5CMD[2] = 0 ; // RSV RESERVED
szSOCKET5CMD[3] = 2 ; // ??UserName/PassWord
intError = send ( s ,szRTBUFF,4,0 );
if (SOCKET_ERROR == intError )
{
DisplayMessage( "Send SOCKET5 Command Failed !");
return ;
}
memset ( szRTBUFF,0x00,sizeof(szRTBUFF));
intError = recv ( s , szRTBUFF,4,0);
if ( SOCKET_ERROR==intError)
{
DisplayMessage("Receive RSP From SOCKET5 Failed ! --- recv ." );
return ;
}
程序到这里就阻塞了!上面的代码是在一个线程中,我跟踪进去,发现recv之前都没有错误,为何recv就阻塞了?请各位大侠帮帮忙,看看小弟的代码哪儿错了!谢谢