求助, 关于"bind使用"和"send失败error_code:10057"
我有一个程序,在连接server前用了bind(代码不是我写的,我不知道为什么要用bind),连接成功后,
send数据失败,返回错误码是10057。
当把bind那句注掉后,可以send成功数据,但是服务器端不能正常处理我发的数据,会给我返回错误的信息。
附部分代码:
void CCommOpr::ConnectSvr(LPCSTR stripInfo, int nPort, CMySocket * pSocket)
{
ASSERT(pSocket);
SOCKADDR_IN sockAddr;
ASSERT(stripInfo);
ASSERT(nPort != 0);
memset((void*)&sockAddr,0,sizeof(sockAddr));
sockAddr.sin_family = AF_INET;
sockAddr.sin_port = htons(nPort);
sockAddr.sin_addr.s_addr = inet_addr(stripInfo);
sockaddr_in si;
si.sin_family = AF_INET;
si.sin_addr.s_addr = inet_addr("192.168.1.102");//我的本地ip
si.sin_port = htons(12320); //端口号似乎可以随便写?
if ( SOCKET_ERROR == bind(pSocket->m_clientSocket,
(SOCKADDR*)&si, 0x10))
{
SetLastError( WSAGetLastError() );
return ;
}
int iConnect = connect(pSocket->m_clientSocket,
(LPSOCKADDR)&sockAddr,sizeof(sockAddr));
if(iConnect > 0)
{
pSocket->m_bConnect = FALSE;
}
else
{
pSocket->m_bConnect = TRUE; //成功
}
}
我对bind的作用不大理解,希望能帮助解释一下.
还有为什么bind后 后面我再send 数据会失败.
谢谢.