一个简单的socket问题

来源:互联网  时间:2016/8/1 17:44:30

关于网友提出的“ 一个简单的socket问题”问题疑问,本网通过在网上对“ 一个简单的socket问题”有关的相关答案进行了整理,供用户进行参考,详细问题解答如下:

问题: 一个简单的socket问题
描述:

假设有一个服务器,然后有两个客户端a,b,他们都用tcp和服务器连接上。问题:如果a想通过服务器给b发消息是怎么做到的?服务器怎么知道是发送给b的,服务器上会有很多socket连接,它是如何找到b与服务器的socket连接来发送的?


解决方案1:

每当一个客户连接后,要用结构数组等方法保存它的pSocket和他的身份标识,当有客户端发送消息后,从中取出要接收的客户标识, 用此标识同结构数组中的身份标识相比较,如果一致就对此结构中的pSocket发送

解决方案2:

消息结构里面你可以定义 from,to,content
然后服务器进行中转

解决方案3:

服务器怎么知道是发送给b的?
可以做成消息头+消息的结构,消息头保存目标的信息,然后服务器根据消息头转发给目标

解决方案4:

映射啊。
server机器上
a ->  socket 0
b ->  socket 1
c ->  socket 2
... ...
z ->  socket n
比如a发送消息给b
当server收到a发送的数据的时候,必然要有a和b的唯一ID存在,我们不妨认为就是"a"和"b".
然后我们可以从外面的mapping中找点server和b之间的那个socket.把消息通过该socket,send就可以了。

上一篇流媒体播放的问题
下一篇VC通过WinSock进行数据通信数据库不能写入问题
明星图片
相关文章
《 一个简单的socket问题》由码蚁之家搜集整理于网络,
联系邮箱:mxgf168#qq.com(#改为@)