请教高手一个网络编程的问题

zhang_ff 2000-06-01 08:17:00
有哪位能够给我详细分析一下在使用winsocket进行网络编程时,
选择Non-blocking方式和blocking方式各有何利弊?
...全文
148 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
Again 2000-06-01
  • 打赏
  • 举报
回复
blocking模式只有在执行完(指返回)该语句之后才会进入下一条,
这样许多消息没法处理,有时候我们看到一些软件半天没反映,
窗口也不刷新(像死了一样)就是采用这种模式.
使用blocking多半会有这种情况.
Non-blocking的坏处是不好控制,因为还没返回就已经到下一条语句了.

我觉得blocking和non-blocking应该结合使用.
zyc 2000-06-01
  • 打赏
  • 举报
回复
Winsocket的Blocking和Non-Blocking方式是设置服务器端的套接字对象所接受的套接字是否是无阻塞的。和是否是由单独的线程自动处理的。
设置Blocking方式,服务器接受每一个客户连接自动产生一个线程处理客户的请求。在发送或接收信息时,线程会自动挂起,直到数据传输完毕。Non-blocking设置服务器的套接字进行异步数据送。其上读写操作是无阻塞式的。
如果同时使用TserverSocket和TClientSocket部件进行数据交换,应用Non-blocking方式;设置Blocking方式时,所有的Onclient..类型的事件句柄必须为线程安全代码。
更多的信息最好找下有关的书籍。

1,593

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 网络通信/分布式开发
社区管理员
  • 网络通信/分布式开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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