用SOCKET通讯,服务端如何确定能将数据传给正确的客户端?

wuxking 2003-08-09 04:34:33
需要写一个Socket通讯的服务端程序,响应多个客户端的请求,然后将返回数据分别传递给客户端,如何来区分各个客户端?
用Serverskt->Socket->Connections[i]->SendText(String); 好像不行,客户端一旦断开连接Connections[i]就有变化。
另外:服务器端如何向所有客户端发送消息?用循环写么?多谢了!
...全文
85 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
wuxsun 2003-08-16
  • 打赏
  • 举报
回复
关于正确发送到客户端: 在发送的时候利用
Serverskt->Socket->Connections[n]->RemoteAddress 判断该IP是否为目的地址,如果是
就Serverskt->Socket->Connections[n]->SendText(String);
不是则n++; 当n超过连接总数,说明不能发送到目的地址。
或者有其他的方法。
pp616 2003-08-10
  • 打赏
  • 举报
回复
服务端最后用socket api来写。用bc的client多了如果你的代码有一点问题。你麻烦就大了。
wuxking 2003-08-09
  • 打赏
  • 举报
回复
如果客户端异常断掉,(比如网络问题,掉电等),服务端如何获取客户端是否连接的状态?
我如何在服务端限制客户端的连接数目,如何断掉某个客户端的连接?谢谢了!
Atomictry 2003-08-09
  • 打赏
  • 举报
回复
1.区分客户端:
如果你用的是非阻塞方式,你需要维护一个列表。
2.向所有客户端,用循环:
for(int i=0;i<ServerSocket1->Socket->ActiveConnections;i++)
{
ServerSocket1->Socket->Connections[i]->SendText(msg);
}

1,317

社区成员

发帖
与我相关
我的任务
社区描述
C++ Builder 网络及通讯开发
社区管理员
  • 网络及通讯开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧