为什么我用socket编写的客户端要等待很长时间才收到返回消息?(附代码)
senwe 2006-06-24 10:34:55 我是初学者,这段代码是从书上来的……
当我用自己的计算机作为客户端和服务器端(模拟的)时,立刻就能收到返回消息
而用在局域网(一万多台计算机)中大约要等一分钟,而且等待的时候就像没有响应一样
在广域网上更是石沉大海,没有返回消息了……
以下是主要源代码:
HICON m_hIcon;
SOCKET m_hSocket;
SOCKADDR_IN m_addr;
m_addr.sin_family = AF_INET;
m_addr.sin_addr.S_un.S_addr = inet_addr(m_strServer.GetBuffer(0));
m_addr.sin_port = htons(m_nPort);
int ret = 0;
int error = 0;
ret = connect(m_hSocket, (LPSOCKADDR)&m_addr, sizeof(m_addr));//连接
if(ret == SOCKET_ERROR){
TRACE("Connect Error: %d \n", (error = WSAGetLastError()));
return ;
}
CString str;
str = m_strUser;
char* buf = str.GetBuffer(0);
ret = send(m_hSocket, buf, str.GetLength(), 0);//发送
char buff[256];
ret = recv(m_hSocket, buff, 256, 0);//接收
buff[ret] = '\0';
AfxMessageBox(buff);
请高人指点~~~