winsock中怎么分离工作数据和命令应答,急! 用winsock的阻塞方式进行网络编程,由于接收工作数据量大,为接收数据单独开了一个辅助线程,发命令在主线程里面实现,但是这样就不能够及时收到命令应答了,怎么办可不可以让辅助线程只接收工作数据,命令应答还是由主线程接收呢? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 只要你的辅助线程是接收SOCKET数据的,从SOCKET中收到的任何东西都会被你的辅线程截获。我不太理解你说的“命令应答”是什么 同楼上,增加一点说明既然想在同一个SOCK里接收数据和应答,除非你知道格式上的区别,或者规定应答格式,以用来区分如果不能规定格式,那你和没一个客户端就建两个SOCK,一个用来收发命令,一个用来收发数据。 如果客户端建立两个SOCK的话,服务器是否也要建立两个相应的SOCK,服务器怎么区分客户端的两个SOCK 服务段可以根据socket句柄来判断那个是数据传输的,那个是控制命令的。比如struct MyParam{SOCKET sCtrl;SOCKET sData;}param;处理先接收控制的连接param.sCtrl = accept(s1...);//读取sCtrl的命令数据,发现需要建立新的连接时候,需要监听一个新的端口号,然后给客户端发送可以连接的命令。//客户端收到可以连接命令,建立一个新的连接。服务端param.sData = accept(s2,.....);如果你设计协议经验丰富的话,可以客户端,服务段都只用一个连接,不多需要对每个接收的数据包进行整理,然后按照自己的协议来处理数据。另外FTP是另外一种方式互为客户服务端。即Client 连接server,处理一些命令后,要接收数据了,Client 开始监听端口,Server建立一个连接来连Client,建立后把数据发送给Client。怎么样说这么多能解决你的问题吗? 新手提问:关于BSTR赋值的简单问题。。。搞晕了。。。 ATL中初始化的问题 关于SPI的编写 如何用钩子截获粘贴事件 [求助]请大家推荐几本书 谢谢! 画图的简单问题 急!!! 写一个关于网络监控 记载的程序,没有思路,请大大牛指点一下!!求求求求求了 如何使我应用程序窗口总处在顶部?类似于Win2k的任务管理器? VC使用的问题 菜鸟问题 loadXML出错问题!请分析指教。 老大们推荐几本VC+DirectX开发方面的好书。
比如
struct MyParam{
SOCKET sCtrl;
SOCKET sData;
}param;处理
先接收控制的连接
param.sCtrl = accept(s1...);
//读取sCtrl的命令数据,发现需要建立新的连接时候,需要监听一个新的端口号,然后给客户端发送可以连接的命令。
//客户端收到可以连接命令,建立一个新的连接。
服务端
param.sData = accept(s2,.....);如果你设计协议经验丰富的话,可以客户端,服务段都只用一个连接,不多需要对每个接收的数据包进行整理,然后按照自己的协议来处理数据。另外FTP是另外一种方式互为客户服务端。
即Client 连接server,处理一些命令后,要接收数据了,Client 开始监听端口,Server建立一个连接来连Client,建立后把数据发送给Client。怎么样说这么多能解决你的问题吗?