在阻塞模式下,需不需要知道是那个客户端连接的,然后发送数据!

netyou 2003-11-23 12:04:49
一般如果我们在非阻塞模式下我们都要确定是那个客户端连接,然后发数据给这个客户端,
void __fastcall TMainForm::ServerSocket1ClientRead(TObject *Sender,
TCustomWinSocket *Socket)
{
for(i=0;i<ServerSocket1->Socket->ActiveConnections;i++)
{
if(ServerSocket1->Socket->Connections[i]==Socket)//确定是那一个客户端
{
ServerSocket1->Socket->Connections[i]->SendText("ZERO_");
}
}
}
那么在阻塞模式下,服务端为每一个连接的客户端开一个线程来处理接受和发送数据,那么我想问的是我们需不需要象非阻塞模式一样也要确定是那个客户端,然后再发送数据?如果不用确定,是不是服务端的线程自动识别和处理服务端?

请大家赐教!
...全文
71 3 打赏 收藏 转发到动态 举报
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
netyou 2003-11-25
  • 打赏
  • 举报
回复
T
叶子哟 2003-11-23
  • 打赏
  • 举报
回复
线程就是识别
netyou 2003-11-23
  • 打赏
  • 举报
回复
这里还有两个不明白的地方:

1.在阻塞的模式下,服务端主动发送读和写的请求,而客户端响应,这样说来好像客户端是被动的;那么假设我客户端如果有了数据,想发送给服务端,这时是不是write数据,等待服务端来读?

2.假设客户端正在接受文件读数据的过程,还没有读完,这时候客户端又有写的消息,那么服务器怎么处理,是继续写数据到客户端,还是先从客户端读出数据再写?

1,316

社区成员

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

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