要求:
1 建立一个基于TCP的服务器
2 多个客户端连接到服务器
3 每个客户端可以显示有哪些客户端已经连接并空闲
4 客户端可以选择和哪一个其他的客户端进行通信目前做法:
1 服务器将每个连接到服务器的客户端的Socket号存入CMAP,并向所有连接到服务器的客户端广播这个Socket号,例如,client1连到server,则通过所有已连接的client的Socket号,向所有client发送client1 的Socket ID1;
2 如果client2选择和client1通信,则client2先与server进行信令交换,发给server的信令包中包含socket ID1;server收到该信令后向client1询问是否与client2建立连接,假设client1同意;
3 在server中建立client1与client2的映射关系,用CMAP做;
4 创建了一个IOCP端口,在GetQueuedCompletionStatus后的处理线程中,每次收到包以后,都检索其SocketID,然后在CMAP中找到对应的目的Socket ID,发包。觉得,服务器的性能不高,因为每次都要检索SocketID,而且还要跑协商信令,比较难处理啊,不知道还有没有别的好一点的方式???
1 建立一个基于TCP的服务器
2 多个客户端连接到服务器
3 每个客户端可以显示有哪些客户端已经连接并空闲
4 客户端可以选择和哪一个其他的客户端进行通信目前做法:
1 服务器将每个连接到服务器的客户端的Socket号存入CMAP,并向所有连接到服务器的客户端广播这个Socket号,例如,client1连到server,则通过所有已连接的client的Socket号,向所有client发送client1 的Socket ID1;
2 如果client2选择和client1通信,则client2先与server进行信令交换,发给server的信令包中包含socket ID1;server收到该信令后向client1询问是否与client2建立连接,假设client1同意;
3 在server中建立client1与client2的映射关系,用CMAP做;
4 创建了一个IOCP端口,在GetQueuedCompletionStatus后的处理线程中,每次收到包以后,都检索其SocketID,然后在CMAP中找到对应的目的Socket ID,发包。觉得,服务器的性能不高,因为每次都要检索SocketID,而且还要跑协商信令,比较难处理啊,不知道还有没有别的好一点的方式???
解决方案 »
- VC怎么传递数组的指针?
- SDI,MDI迷糊
- 文本中有几行注释文字,怎么做才能只读数据不管文字?
- telnet编程问题
- 用LoadBitmap装载位图,再取其BITMAP结构,为什么其bmBits成员为空?
- 怎样把几张长宽一样的GIF图片拼在一起(横竖都可以),再保存为JPG格式
- C运行库到底是什么东西?它和操作系统有没有关系?
- 有官方发布的COM规范吗?在什么地方能找到?
- 如何通过 批处理 在一个 资源管理器中 打开多个目录?
- 帮一个无助的人--windows api 中hook函数是怎样被调用的,为什么会有这种函数。
- 为什么取不到坐?
- 请问下创建windows服务程序步骤及各函数功能参数描述
我们想用TCP传音频和视频,用UDP的话,经常通不了,所以没办法啊
我认为这样做不好
尤其在网络状况不好的情况下
在udp通不了的情况下
tcp若能通的代价是长时间的等待
实际效果就是说一句话要等很长时间才能听到
我们想用TCP传音频和视频,用UDP的话,经常通不了,所以没办法啊
我认为这样做不好
尤其在网络状况不好的情况下
在udp通不了的情况下
tcp若能通的代价是长时间的等待
实际效果就是说一句话要等很长时间才能听到
但它存在一个最大sockets数量问题
操作系统能够同时接受的连接sockets数量是有上限的