需求是这样的,我是客户端,通过长连接连接到服务端,除了客户端主动向服务端请求并收取服务端返回的需求外,还要求能在这个连接上接收服务端主动给我发过来的通知等。合作方不同意用一对SOCKET。 之前没弄过这样的,我试着在connet前加了个WSAAsyncSelect就总连不上了,服务端显示连上后马上就断开了。
哪位大侠做过类似的?给段示例代码?谢谢了!!!
哪位大侠做过类似的?给段示例代码?谢谢了!!!
解决方案 »
- 远程桌面控件被覆盖后不能自动刷新
- 内存泄漏的提示分别代码什么意义
- MFC DLL中的多线程 + com初始化问题
- 请问编写winsock 程序必须的初始化工作, 使用的头文件,静态库都有哪些?????
- SOS,SOCKET send HTTP Get不到网页内容
- 高分征求:电力SCADA项目验收所需要的相关资料模板
- 各位大虾谁有收发邮件附件的例子,急需呀!
- 请教...
- ★★★★★★★★★★谁有简体版的<<深入浅出MFC第二版>>★★★★★★★★★★
- 求解:关于CSocket问题,十分不解,[服务端接收不到已经已由客户端发到服务端的包]
- 可以解释一下MFC WINCE EVC 类,对象,窗口,消息 等等,之间的相互关系和联系,越多越好.谢谢大家
- 3线CCD采集的图象数据不转化为BMP,可以直接以行为单位进行图象处理吗?
服务器端接到连接启动一个线程,这个线程可以完成数据的发送\接收啊,客户端也能正常的发送\接收数据.
还有就是用同步接收机制.
// 1.首先定义消息值
#define UM_SOCK (WM_USER + 1)// 2.然后指出自定义消息的处理函数
ON_MESSAGE(UM_SOCK, OnRecvMsg)// 3.在socket、connect之后
if(WSAAsyncSelect(m_SocketClient, m_hWnd, UM_SOCK, FD_READ | FD_CLOSE) == SOCKET_ERROR)
{
// 错误处理
}// 4.最后写消息处理函数
VOID OnRecvMsg(WPARAM wParam,LPARAM lParam)
{
switch(WSAGETSELECTEVENT(lParam))
{
// 有数据需要接收
case FD_READ:
// 接收数据
break;
// 服务器端连接关闭
case FD_CLOSE:
closesocket(m_SocketClient);
break;
}
}
--------------------------------------
对方不同意用一对SOCKET, 启两个连接,一个上行,一个下行。两端互为服务端和客户端 的那种
if(WSAAsyncSelect(m_SocketClient, m_hWnd, UM_SOCK, FD_READ | FD_CLOSE) == SOCKET_ERROR)
问题的原因可能是找到了,在这里,应该是我的WSAAsyncSelect写在connect之前了
不是要补了,是要学。我都不懂的,现在是在抄别人的代码,有些具体的API函数的作用都还没完全弄懂。没空去学,项目追的太急了。
哪位推荐本这方面的好书???不想看那些外文的,更不想看那些翻译的。