主题:有关网络编程的问题,请教,谢谢!
开发c/s程序中,客户端在pc机上使用,网络接口使用的是vc.net的CAsyncSocket类,服务端是嵌入在其他硬件上的,使用的是c语言,网络接口是winsock API.现在客户端和服务器连接的时候出现问题,客户端总是提示无法连接,但是服务器端已经收到连接请求并且正确得到了客户端的ip地址.不知道是什么原因,请高手指点,万分感谢!
相关的代码片断如下:
客户端:(端口号和服务器端已经一致)
CAsyncSocket *m_pSocket = new CAsyncSocket();
if(!m_pSocket->Create())
//错误处理
else
{
while(!m_pSocket->Connect(ServerName,Port)) //ServerName和Port为
//地址和端口
{
if(AfxMessageBox("无法连接服务器,是否重试?",MB_YESNO)==IDNO)
{
delete m_pSocket;
m_pSocket = NULL;
break;
}
}
}
服务器:
SOCKET ListenSocket;
SOCKET ServerSocket;
ListenSocket= socket(AF_INET,SOCK_STREAM,0);
//相关变量赋值
bind(); //具体参数省略
listen(ListenSocket,2);
ServerSocket = accept(ListenSocket,...);//其他参数省略
//显示客户端信息代码...
其他代码均无错误
运行的时候,先启动服务器,进入监听状态,等待连接.当客户端连接的时候总是出来无法连接的对话框,但是服务器端已经收到连接,而且客户端的ip也正确显示.自己重新写了一个客户端的程序,连接完全正常,一回到这个客户端的程序就不行,好郁闷!
请高手指点原因何在,谢谢!
相关的代码片断如下:
客户端:(端口号和服务器端已经一致)
CAsyncSocket *m_pSocket = new CAsyncSocket();
if(!m_pSocket->Create())
//错误处理
else
{
while(!m_pSocket->Connect(ServerName,Port)) //ServerName和Port为
//地址和端口
{
if(AfxMessageBox("无法连接服务器,是否重试?",MB_YESNO)==IDNO)
{
delete m_pSocket;
m_pSocket = NULL;
break;
}
}
}
服务器:
SOCKET ListenSocket;
SOCKET ServerSocket;
ListenSocket= socket(AF_INET,SOCK_STREAM,0);
//相关变量赋值
bind(); //具体参数省略
listen(ListenSocket,2);
ServerSocket = accept(ListenSocket,...);//其他参数省略
//显示客户端信息代码...
其他代码均无错误
运行的时候,先启动服务器,进入监听状态,等待连接.当客户端连接的时候总是出来无法连接的对话框,但是服务器端已经收到连接,而且客户端的ip也正确显示.自己重新写了一个客户端的程序,连接完全正常,一回到这个客户端的程序就不行,好郁闷!
请高手指点原因何在,谢谢!