各位大哥又有个问题,我用SOCKET做了个聊天的,我服务器端运行了,问题就是多个客户端同时连接的时候,所有的客户端都可以象服务器端发送信息,服务器端也接收的到,

  • 主题发起人 主题发起人 wmhnq
  • 开始时间 开始时间
W

wmhnq

Unregistered / Unconfirmed
GUEST, unregistred user!
各位大哥又有个问题,我用SOCKET做了个聊天的,我服务器端运行了,问题就是多个客户端同时连接的时候,所有的客户端都可以象服务器端发送信息,服务器端也接收的到,但是服务器端发送信息出来却只有一个客户端能接受的到 (10分)<br />各位大哥又有个问题,我用SOCKET做了个聊天的,我服务器端运行了,问题就是多个客户端同时连接的时候,所有的客户端都可以象服务器端发送信息,服务器端也接收的到,但是服务器端发送信息出来却只有一个客户端能接受的到
 
服务器每次只能向一个客户机发送消息,你可以用一个循环,依次检测所连接的客户机的
数组,逐个发送信息。在UDP中是这样做的,而在TCP中不知有没有改进,试下以后再交流。
 
当然是这样,又不是udp,可以群发的,呵呵!!
 
connection.send('')
 
如果给serversocket的客户连接数组循环发信息,岂不是给所有的客户短发同样的信息了??
比较好的方法是服务端为每一个客户端的连接建立一个会话(Session),例如:
Session_record=record //一个纪录类型的会话
SS_Handle: integer; //服务器套接字句柄,记录客户端的连接句柄
。。。。
end
服务端给客户端发信息的时候,根据会话的套接字句柄判断发送给那个客户端。具体你可以上网上查查有个用delphi写的代理服务器的代码!!这里我只是抛砖你自己引玉吧!!!
 
后退
顶部