CSocket connect()失败!
下面是客户端代码:
AfxSocketInit();
CSocket aSocket;
CString strIP;
CString strText("aaa");
this->GetDlgItem(IDC_EDIT1)->GetWindowText(strIP);
//初始化 CSocket 对象, 因为客户端不需要绑定任何端口和地址, 所以用默认参数即可
if(!aSocket.Create())
{
AfxMessageBox(_T("create error"));
exit(1);
}
AfxMessageBox(strIP);
//转换需要连接的端口内容类型
//连接指定的地址和端口
if(aSocket.Connect(strIP, PORT))
{
aSocket.Send(strText, strText.GetLength()); //发送内容给服务器
}
else
{
AfxMessageBox(_T("connect error"));
exit(1);
}
aSocket.Close();
下面是服务器端线程代码:
CSocket aSocket,serverSocket;
if(!aSocket.Socket())
{
AfxMessageBox(_T("create socket error "));
exit(1);
}
BOOL bOptVal = TRUE;
int bOptLen = sizeof(BOOL);
//设置Socket的选项, 解决10048错误必须的步骤
aSocket.SetSockOpt(SO_REUSEADDR, (void *)&bOptVal, bOptLen, SOL_SOCKET);
if(!aSocket.Bind(PORT))
{
AfxMessageBox(_T("bind error"));
exit(1);
}
if(!aSocket.Listen(10))
AfxMessageBox(_T("listen error"));
AfxMessageBox(_T("success1"));
while(1)
{
if(!aSocket.Accept(serverSocket))
{
AfxMessageBox(_T("accept error"));
continue;
}
AfxMessageBox(_T("success3"));
CreateThread(NULL,0,(LPTHREAD_START_ROUTINE)RecvThread,(LPVOID)&serverSocket,0,0);
}
我这是用VS2010 MFC写的,服务器已经成功到accept()前面了,但是客户端connect不了(弹出我自己写的connect error),我输入的strIP是127.0.0.1,端口号PORT一边是4000一边是4600,有什么问题吗? 谢谢大家了!