求助:socket编程中,connect 10060错误
在一个ftp服务器中,ClientSock接受客户端,然后在处理客户端PORT命令时,ToSock,toSock_sin的初始化都没问题,但为何接下来的connect语句会出现10060的错误?而且真个程序到这里就卡了,不得不退出。
请高手们不吝赐教!!!
谢谢!!!!!!
主要代码如下:
ClientSock = accept (WinSocket, (struct sockaddr *) &accept_sin, (int *) &accept_sin_len);
closesocket (WinSocket);
while(1)
{
memset(szServerA,0, sizeof (szServerA));
iReturn = recv (ClientSock, szServerA, sizeof (szServerA), 0);
if( /*其他命令*/){}
else if ((strncmp(szServerA, "PORT", 4) == 0))
{
/*获取客户端ip为data_ip*/
/*获取客户端端口为data_port*/
SOCKET ToSocket= socket (AF_INET, SOCK_STREAM, 0);
sockaddr_in toSock_sin;
toSock_sin.sin_family = AF_INET;
toSock_sin.sin_port = htons (data_port);
toSock_sin.sin_addr.s_addr = htonl (data_ip);
if(connect (ToSocket, (struct sockaddr *)&toSock_sin, sizeof(toSock_sin)) == SOCKET_ERROR )
{
wsprintf(str,"425 Cannot open data connection (%s %d)!\nSocket error %d\r\n", data_ip, data_port, WSAGetLastError() );
}
else
wsprintf(str,"200 Port command okay!\r\n ");
send(ClientSock, str, strlen(str), 0);
}
}