我是初学者,这段代码是从书上来的……
当我用自己的计算机作为客户端和服务器端(模拟的)时,立刻就能收到返回消息
而用在局域网(一万多台计算机)中大约要等一分钟,而且等待的时候就像没有响应一样
在广域网上更是石沉大海,没有返回消息了……以下是主要源代码:
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);请高人指点~~~
当我用自己的计算机作为客户端和服务器端(模拟的)时,立刻就能收到返回消息
而用在局域网(一万多台计算机)中大约要等一分钟,而且等待的时候就像没有响应一样
在广域网上更是石沉大海,没有返回消息了……以下是主要源代码:
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);请高人指点~~~
解决方案 »
- fatal error LNK1104: cannot open file "libeay32.dll",Error executing link.exe.
- 请教2个小问题
- 为什么当鼠标放到activex控件上的时候它的界面就消失了?具体见里面
- 数据库用应程序,对datagrid进行的添加记录,我怎么写的有错啊!!!
- 请教:如何找到资源泄漏发生的位置?
- 接口不支持,vc写的Com+,Delphi调用时说接口不支持??有什么原因?
- 有没有用过IBM的CICS产品的仁兄啊,为什么调callprogramandcommit返回-3呀,急救啊
- 调试directshow例子怎么不行?
- 设置托盘程序MDI主窗口是 popup型,用什么函数激活它?
- 什么网站上面有关于用Vb编写Com的资料和相关的代码!
- 初学者求助lib文件的使用问题.
- 如何画一个16*16的小图标?
是不是因为调用socket.connect()用了很长时间?
我看到网上有些是包含Winsock2.h,我用的是包含winsock.h,这有关系吗?
我一个同事是用Delphi写的,瞬间就得到了返回报文
……
或者谁能给一段完整的实时发送接收报文的代码?