一个SocketServer接受多个SocketClient发送的数据,用阻塞方式好还是用非阻塞方式好,要求实时性高一些的。最好能给出理由,谢谢了!
还有呀:我只知道阻塞和非阻塞的区别是:一个是同步另一个是异步,还有什么本质区别吗?用过的兄弟给讲讲好吗
还有呀:我只知道阻塞和非阻塞的区别是:一个是同步另一个是异步,还有什么本质区别吗?用过的兄弟给讲讲好吗
解决方案 »
- 求delphi程序中一句简单的sql语句如何理解?
- 下来菜单不显示,使用了BusinessSkinForm皮肤。
- dspack的简单问题,在线求救!!!!help
- 又是串口若得祸,请高手出招
- 一個三方控件!!!!
- 输入法问题(请教)
- 谢谢,我还真不知道DCOM的设置这么复杂,但我还是想问一个,我已经安装了dcom98,为什么我的WIN98系统里找不到DcomCnfg文件呢?
- 刚刚接触delphi.刚刚申请了ID 送分以表示祝贺!顺便请教一下关于delph有那些较好的书籍
- 为什么我用D5做ActiveForm能在其他机器上看到效果,而D6不行呢?
- 那位大哥知道,TDBgridEh打印预览的时候为什么不显示Footer内容哪 ?
- ◆◆◆100分求:如何编程实现将某个硬盘分区设置为共享???
- 散分!兄弟們進來祝福我的朋友---星星~~第三贴
一般都采用非阻塞方式。
在客户端,如果把 ClientType特性设置为ctNonBlocking,表示采用非阻塞方式进行连接。当服务器端 Socket试图进行读/写操作的时候,客户端 Socket就会得到通知,即OnRead或者OnWrite事件。对于服务器端Socket来说,如果把ServerType特性设置为 StNonBlocking,表示采取非阻塞方式进行连接。当客户端 Socket试图进行读/写的时候,服务器端Socket就会得到通知,即OnClientRead或者OnClientWrite事件。与非阻塞方式不同的是,在阻塞方式下没有诸如OnRead或者OnWrite等异步事件。Socket必须主动去读或者写数据。在读写操作完成之前,其他代码都无法执行,成为了纯粹的独占使用方式,整个应用程序将处于等待状态,大大降低应用程序的性能。对于客户端Socket来说,如果把 ClientType特性设置为ctBlocking,表示采取阻塞方式进行连接,为了尽可能的减少阻塞方式的负面影响,可以把所有涉及到读写的操作放在一个单独的线程中,这样可以使其他的线程可以继续得到执行。对于服务器端 Socket来说,如果把ServerType设置为stThreadBlocking,表示采取阻塞方式进行连接。Delphi 中将为每一个阻塞方式的连接自动分配一个新的线程,这样即使一个客户正在进行读写操作,其他的客户也不必等待