UDP协议,多客户端网络问题? 本帖最后由 VisualEleven 于 2011-03-17 14:22:11 编辑 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 请去查看一下CSMA/CD(带冲突检测的载波监听多路访问) oyljerry,链表没用过,不知怎么用sichuanpb,你指的是识别那个设备吗?那到不用,数据包里有IP 和端口号 就是你的服务器端维护客户端的SOCKET连接,删除或者添加,比如accept以后,就要添加,客户端closesocket了以后,你就要删除 UDP程序,不存在连接,也不用accept 在这个通信中,主机相当于服务端,设备是客户端。服务端,也就是主机,开一个UDP端口就可以够用。主机 每次通过ReceiveFrom接收UDP数据的时候,除了返回数据,它也返回对端的IP和UDP端口,你记下来,就可以用IP+UDP端口的组合来标志对应的设备了,也就可以针对某一个具体设备做回应了。至于设备损害或不再需要与主机通信的情况,则可以让主机定时发一自定义的很小的UDP包做心跳,来知道设备是死是活。- 千里孤行 开放一个端口足够了,也就这么二十台机器嘛!发送数据时,在客户机上发送数据中,UDP信息头就可以包含客户机的端口号和IP地址,服务器端记下IP和端口号,以此回应。 Sorry,看错了,你保存客户端的SOCKADD_IN地址 需要个简单的通讯协议,比如客户端发起连接请求 bind命令服务器收到该命令的回复bindres命令此时:A服务器,维护客户端连接链表 B客户端开接收到bindres开始发送实际数据。客户端发送完毕后向服务器端发送断开命令unbind服务器收到该命令回复unbindres命令此时:A服务器,从客户端链表中删除当前的客户端 B客户端逻辑断开连接。 使用UDP,一个端口够用了,10个设备不成问题。所谓同时反应,其实还是有时间差距的,只是时间非常短,可以认为是同时。写程序时可以用事件选择模型或者overlapped i/o。CAsyncSocket是要经过窗口消息循环的吧?可以查一下,如果是,则不建议使用。 直接用socket API来写,多好。 C++实现保存24位BMP图像 vc++2005中如何实现递归函数 比较急,给60分把。一个关于类似QQ的局域网内多线程聊天工具编写的问题 请教一个关于WCHAR的问题。 为什么没人理我?还是搞不定listctrl 传入路径字符串,请问如何获得该路径下的文件和目录信息???? 文件读写的问题,大家来帮我看看 求助静态数组赋值失败 请问一个打开声音文件的问题 SQL库存大量图片的方案 如何重载对话框右上角关闭按钮和最小化按钮 关于EDIT根据内容修改颜色,定时器响应事件,前面几个EDIT颜色可变,后面几个颜色不变?
服务端,也就是主机,开一个UDP端口就可以够用。主机 每次通过ReceiveFrom接收UDP数据的时候,除了返回数据,它也返回对端的IP和UDP端口,你记下来,就可以用IP+UDP端口的组合来标志对应的设备了,也就可以针对某一个具体设备做回应了。至于设备损害或不再需要与主机通信的情况,则可以让主机定时发一自定义的很小的UDP包做心跳,来知道设备是死是活。- 千里孤行
比如客户端发起连接请求 bind命令
服务器收到该命令的回复bindres命令
此时:A服务器,维护客户端连接链表
B客户端开接收到bindres开始发送实际数据。
客户端发送完毕后向服务器端发送断开命令unbind
服务器收到该命令回复unbindres命令
此时:A服务器,从客户端链表中删除当前的客户端
B客户端逻辑断开连接。