征求解决之道。

smallfool 北京秀迈时空信息技术有限公司 CTO  2003-07-24 05:17:26
有一C/S结构。Client是多窗口的,采用异步socket,由于是异步,所以现在的通信包定义中有一个服务器端根本不用的发送请求的窗口的句柄。客户端发过去,服务器需要把这个句柄也要复制到返回通信包中,以便客户端可以识别是哪个窗口发送了请求。
我总感觉这样的通信包的定义存在着问题。就整体而言,客户端似乎不应该把服务器根本不需要的东西传过去再接收回来。请教高手,有没有什么好的办法让客户端自己来维护发送的请求、接收的应答,如何和相关窗口关联起来?
...全文
26 点赞 收藏 8
写回复
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
smallfool 2003-08-18
??关注
回复
smallfool 2003-08-01
没人有解决之道???
回复
smallfool 2003-07-31
To WWWLG:你的意思是说还是要把命令码发送给服务器了?我的意思就是要避免这样的字段,因为对服务器来说根本没有意义。
回复
UDX协议 2003-07-30
A发A时,加一个命令码就可以了,b发b时,也加一个命令码,当回发时,同样,发不同的命令码不就可以区分是a发来的还是b发来的吗?
回复
smallfool 2003-07-30
To Zhouyong0371:你的意思我想我明白。但似乎不是我的答案。

我的意思是如果是对于一个MDI程序,一个视图a发送A请求,一个视图b发送B请求,由于是异步通信,A请求对应的是A应答,而B请求对应的是B应答。如果是连续这样间断的发送可能没有问题,但是如果视图a发送了A请求之后,b视图发送b请求,a视图再发A请求。而此时什么应答都没有回来。过了一会,有一个A应答回来了,我如何区分是a视图的第一次请求还是第二次请求呢?
回复
zhouyong0371 2003-07-25
异步方式,为什么不用WSAEventSelect?要进行窗口消息的管理,WSAAsyncSelect模型恐怕是最好的选择。
回复
smallfool 2003-07-25
kao. 那我的socket如果偏偏就是采用异步方式呢?还不是需要一种策略来识别发送请求的窗口吗?????

如果是同步套接字,根本就不会有这样的问题,这个我也之道
回复
c0der 2003-07-24
用多线程的不就行了,每个窗口对应一个线程并在每个线程中都创建一个socket连接服务端。每个客户端用自己的socket接受就可以了。
回复
发动态
发帖子
网络编程
创建于2007-09-28

1.8w+

社区成员

VC/MFC 网络编程
申请成为版主
社区公告
暂无公告