关于通过DLL与服务器进行socket通信的问题.

JB-Zhang 2006-09-05 06:19:39
我要写一个DLL,功能是向调用程序(EXE)提供接口,在DLL里面使用Socket跟远程服务器通信,现在有个问题:调用程序调用DLL里的一个函数,把查询条件传进去,DLL把条件作一些逻辑处理后,用Socket发送到服务器,服务器查询到结果后,再把结果通过Socket发回,给这个函数作为返回值.可是,函数执行完MySocket.Send方法后,就结速了,而socket通讯却有延时,所以得不到想要的值.
请问有什么办法可以让程序在执行完MySocket.Send方法之后,原地等待服务器发回结果呢?我试过使用sleep,但是这个时间整个程序都停止了,所以Socket的OnReceive事件根本不会触发,请问有其它的办法吗?
...全文
287 7 打赏 收藏 转发到动态 举报
写回复
用AI写文章
7 条回复
切换为时间正序
请发表友善的回复…
发表回复
su47flying 2006-09-08
  • 打赏
  • 举报
回复
使用线程,或者消息。都可以吧。
JB-Zhang 2006-09-07
  • 打赏
  • 举报
回复
我想用select,不知道行不行.
DentistryDoctor 2006-09-06
  • 打赏
  • 举报
回复
如果真要阻塞,可以考虑worker thread+WaitForSingleObject
JB-Zhang 2006-09-05
  • 打赏
  • 举报
回复
可以用观察者模式,有处理结果后再通知调用者。在原地死等不好。
======================================================
不行呀,我的函数是这样的:
long LoginToServer(char * sUserName, char * sPassword);
我要在这个函数里执行完之后,返回一个唯一的ID作为每个客户端的标识,所以我想做成阻塞的.
布学无数 2006-09-05
  • 打赏
  • 举报
回复
楼上建议不错
DentistryDoctor 2006-09-05
  • 打赏
  • 举报
回复
可以用观察者模式,有处理结果后再通知调用者。在原地死等不好。
yxpangpang 2006-09-05
  • 打赏
  • 举报
回复
WaitForSingleObject

开个线程
试一下,我也没怎么用过

15,471

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 进程/线程/DLL
社区管理员
  • 进程/线程/DLL社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧