mfc如何实现从服务端向两个客户端同时发送相同的数据
现在有一个server程序,两个client(client1,client2)程序运行,我把client的那个工程用vs打开了两次然后分别运行,与server建立连接,然后实现数据传输(client发送数据,然后server回发),我本来想连接之后,server向两个client同时发送相同的数据(比如client1向server发送数据,server同时向client1和client2发送数据),但是实际运行起来,是谁向server发送,server向谁发送。
linux下实现这种问题好像是用fork(),但是window没有fork()啊,听说createThread可以,但是查了一下好像很复杂,而且据说会发生内存泄露,不推荐使用。怎么办?有哪位可以帮忙解答一下 MFC 数据传输? socket
[解决办法]
server维护一个client的socket list,然后遍历list,依次给各个socket发送send数据
[解决办法]
如果给两个客户发送同样的数据,可以用多播,这有socket的源码,你看一下Sntp:
http://download.csdn.net/detail/geoff08zhang/4571358
[解决办法]
你自己用个链表保存客户端的SOCKET句柄等相关信息,这个当然需要动态维护,比如客户离开,需要从链表中删除。
[解决办法]
注意多线程访问修改同一个全局变量需要加锁
[解决办法]
在你访问链表的时候加锁,访问完了立马释放。
[解决办法]
调用两次send就可以了
[解决办法]
楼主知道Select模型么?
完全可以做到Server对Client 1对多的情况