tcp连接,为啥都连接不上呢?出现100061的错误,真晕啊,为什么?
服务端:
//初始化
WSADATA wsd;
if(WSAStartup(MAKEWORD(2,2),&wsd))
{
MessageBox("Initailize WSAStarup failed");
return true;
}
m_ServerSocket = socket(AF_INET,SOCK_STREAM,IPPROTO_IP);
//unsigned long u1=0;
//int nRet = ioctlsocket(m_ServerSocket,FIONBIO,(unsigned long*)u1);
sockaddr_in addr;
int nSockError;
addr.sin_family = AF_INET;
addr.sin_port = htons(6600);
addr.sin_addr.s_addr = inet_addr("127.0.0.1");//htonl(INADDR_ANY);
if(bind(m_ServerSocket,(LPSOCKADDR)&addr,sizeof(addr)) == SOCKET_ERROR)
{
nSockError = WSAGetLastError();
MessageBox("bind server error");
}
void CSocketServerDlg::OnButtonListen()
{
// TODO: Add your control notification handler code here
SendMessage(IDC_LISTEN_PROCESS,16,0);
}
void CSocketServerDlg::ListenProcess()
{
int iRet = listen(m_ServerSocket,5);
if(iRet == SOCKET_ERROR)
{
iRet = WSAGetLastError();
MessageBox("listen error");
}
sockaddr_in addr_client;
int iAddrSize;
while(bFlag)
{
sClient = accept(m_ServerSocket,(sockaddr *)&addr_client,&iAddrSize);
if(sClient == INVALID_SOCKET)
{
break;
}
this->SendMessage(IDC_SEND_RECV,0,0);
}
closesocket(m_ServerSocket);
WSACleanup();
return;
}
bool bFlag = true;
#define DEFAULT_BUFFER 200
void CSocketServerDlg::SendAndRecv()
{
SOCKET sock = sClient;
char szBuff[DEFAULT_BUFFER];
int ret,nLeft,idx;
DWORD nSockError;
while(bFlag)
{
ret = recv(sock,szBuff,DEFAULT_BUFFER,0);
szBuff[ret] = '\0';
nLeft = ret;
idx = 0;
while(nLeft > 0)
{
ret = send(sock,&szBuff[idx],nLeft,0);
if(ret == 0)
{
break;
}
else if(ret == SOCKET_ERROR)
{
nSockError = WSAGetLastError();
break;
}
nLeft -= ret;
idx += ret;
}
}
return;
}