1000分!!!求解界面线程! 把已经连接好的socket作为参数传给界面线程,如何能把WSAAsyncSelect()函数所接收到的消息放在界面线程里处理,比如Read, Write等消息。最好能有源代码,谢谢!分不够另开贴给分! 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 呵呵,给我发邮件吧,[email protected],帮你写一个 ::SendMessage(pDlg->m_hWnd, UM_RECEIVE, ...) qrlvls, 你的意思是往这个在UI Thread 里Create的窗口里发送收到的消息吗? 目的是对于每一个socket的发送接收放在界面线程里做。通过wsaasyncselect事件通知发送或者接收 刚刚做了一个跟你类似的东东,定义一个GUI/Network thread的消息接口,包括msgid 和各个消息的消息结构体如:#define WM_GUI_TO_NETWORK_LOGIN WM_USER+3000typedef struct tagGUIToNetworkLogin{ char name[20]; char pwd[20];}t_gui_to_network_login;然后,PostThreadMessage来进行双方之间的通讯了! 前提是要有一个网络thread derived from CWinThread supposed it named CNetworkThread you could add a CAsyncSocket *m_pClientSocket to the CNetworkThread,use the CNetworkThread as a proxy between the socket object and the gui thread. WSAAyncSelect中有主框架的hWnd,然后直接PostMessage就可以了 创建一个新线程,将主窗体的HWND作为参数传入,在线程中使用WSAAsysncSelect()好好看看WSAAsyncSelect()函数的说明 同意SillYOU.WSAAsysncSelect()可以直接注册窗口信息,把想处理消息的窗口句柄作为这个函数的参数.注册后你就可以在窗口处理函数中直接处理你FD_READ,FD_WRITE的消息了. 可是我是想把这些FD_READ,FD_WRITE的消息放到界面线程里处理啊 这些FD_READ,FD_WRITE的消息最好放worker thread中,处理的信息再发送消息 blastzgd,你能给我一个类似的例子吗?真的急死了!我的MAIL:[email protected]真的谢谢!!! 晕,还是靠我自己找资料解决的!不过谢谢上面几位的帮忙,在CSDN里喜欢帮忙的人不是太多了本来1000分不想再送了,心寒啊。为了做人的原则,我会按照上面各位的回答给分。 请帮忙出个主意,新手做个什么项目好 VC中使用水晶报表怎么制作报表目录 我想HOOK住Notepad.exe的SetWindowPos, 请问用哪种方法最好? 裁剪能否在视图区或者设备坐标系下进行呢? recv返回-1,但错误码是0,我晕,这是什么现象??? 求一个最大利用率算法(或者给个好思路) 如何调用windows的搜索文件或文件夹功能? mysql++在vc++中不能用? 急聘VC软件工程师!!! VC中如何获取当前系统所有的串口? windows服务 动态生成的CEdit怎么设置成多行?
各个消息的消息结构体如:
#define WM_GUI_TO_NETWORK_LOGIN WM_USER+3000typedef struct tagGUIToNetworkLogin
{
char name[20];
char pwd[20];
}t_gui_to_network_login;然后,PostThreadMessage来进行双方之间的通讯了!
you could add a CAsyncSocket *m_pClientSocket to the CNetworkThread,
use the CNetworkThread as a proxy between the socket object and the gui thread.
好好看看WSAAsyncSelect()函数的说明
WSAAsysncSelect()可以直接注册窗口信息,把想处理消息的窗口句柄作为这个函数的参数.
注册后你就可以在窗口处理函数中直接处理你FD_READ,FD_WRITE的消息了.
我的MAIL:[email protected]
真的谢谢!!!
本来1000分不想再送了,心寒啊。为了做人的原则,我会按照上面各位的回答给分。