Winsocket的Blocking和Non-Blocking方式是设置服务器端的套接字对象所接受的套接字是否是无阻塞的。和是否是由单独的线程自动处理的。
设置Blocking方式,服务器接受每一个客户连接自动产生一个线程处理客户的请求。在发送或接收信息时,线程会自动挂起,直到数据传输完毕。Non-blocking设置服务器的套接字进行异步数据送。其上读写操作是无阻塞式的。
如果同时使用TserverSocket和TClientSocket部件进行数据交换,应用Non-blocking方式;设置Blocking方式时,所有的Onclient..类型的事件句柄必须为线程安全代码。
更多的信息最好找下有关的书籍。
设置Blocking方式,服务器接受每一个客户连接自动产生一个线程处理客户的请求。在发送或接收信息时,线程会自动挂起,直到数据传输完毕。Non-blocking设置服务器的套接字进行异步数据送。其上读写操作是无阻塞式的。
如果同时使用TserverSocket和TClientSocket部件进行数据交换,应用Non-blocking方式;设置Blocking方式时,所有的Onclient..类型的事件句柄必须为线程安全代码。
更多的信息最好找下有关的书籍。
解决方案 »
- TreeView添加data数据,和取data数据的疑惑。。。。
- cxpagecontrol中右上角的下拉三角,在那里设置的
- [请教]Delphi如何为代码做成一个安装程序
- 使用 TBatchMove 如何处理 bigint 类型字段?
- delphi 7中 ADO、BDE、dbExpress有什么区别?
- 如何调用选择目录界面?请教高手!
- 请问怎么把adoquery中的数据导入到一个临时表中?
- 在一堆源代码中找到某个字段被修改.....
- 我想将EXCEL文件或网页文件进行加密(打包为一个文件或别的方法,但是又想用ie作为阅读器进行浏览,该怎末做
- 关于符串的一个小问题
- 请教高手有关联网售票的问题.
- 怎样使MaskEdit控件输入时右对齐
这样许多消息没法处理,有时候我们看到一些软件半天没反映,
窗口也不刷新(像死了一样)就是采用这种模式.
使用blocking多半会有这种情况.
Non-blocking的坏处是不好控制,因为还没返回就已经到下一条语句了.我觉得blocking和non-blocking应该结合使用.