尝试使用Telnet获取数据时,WSAGetLastError返回10038

时间:2013-12-26 08:50:58

标签: c++ sockets tcp telnet

我有一个程序使用telnet发送数据。通过使用putty,我可以获得数据。

但在我的代码中我使用相同的conenction prefs(Same ip = 127.0.0.1,Same port = 27021)

但我收到WSAENOTSOCK(10038)错误。

这是我的代码:

 WSADATA WSAData;
SOCKADDR_IN sin;
SOCKET sock;
WSAStartup( MAKEWORD( 2, 2 ), &WSAData );


sock = WSASocket( AF_INET, SOCK_STREAM, IPPROTO_TCP, 0, 0, 0 );
sin.sin_family = AF_INET;
sin.sin_addr.s_addr = htonl(INADDR_ANY);
sin.sin_port = htons( 27021 );


bind( sock, ( SOCKADDR * )&sin, sizeof( sin ) );
listen( sock, SOMAXCONN );
int sin_len=sizeof(sin);

while( true )

   {
    SOCKET tmp = accept( sock, NULL, NULL );
    char buff[ 1024 ];

int result = recv(tmp, buff, 1024, 0);

 std::cout<<buff<<" "<<result<<" "<<WSAGetLastError()<<std::endl;
    closesocket( tmp );
}
return( 0 );
}

它返回-1作为结果,10038作为wsagetlasterror。

编辑:如果我使用sin.sin_addr.s_addr = htonl(INADDR_ANY);我得到错误代码,但如果我使用sin.sin_addr.s_addr = inet_addr(“127.0.0.1”)没有收到数据。

0 个答案:

没有答案