博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
socket Blocking connections
阅读量:6277 次
发布时间:2019-06-22

本文共 1002 字,大约阅读时间需要 3 分钟。

Blocking connections 

      当你使用的连接是Blocking时,你的Socket必须通过连接发起读或写操作,胜过被动的等待从socket连接发来的通知. 
      当你的连接末端的读和写操作发生改变时使用Blocking socket.对于客户端sockets,设置ClientType属性为ctBlocking 
      以便构成一个blocing 
      connection.根据你的客户端应用想完成什么,你可能想建立一个执行线程去完成读或写操作,以便你的应用能够继续执行其他的线程,当

它在等待通过连接读或写操作的完成. 

      对于服务器sockets,设置ServerType属性为stThreadBlocking以便构成一个blocking 

      connection.因为blocking 
      connections在等待通过连接读或写信息完成时挂起了其他代码的执行,服务器socket控件通常产生一个新的执行线程给每一个客户连接,

当ServerType设置为stThreadBlocking时.许多使用Blocking连接的应用都写使用线程(using 

      threads.甚至如果你不使用线程,你可能也想使用(using) TWinSocketStream去读和写. 
      1)using threads 
      当使用一个blocking 
      connection进行读或写操作时,客户sockets不会自动产生一个新线程.如果你的客户应用程序没有什么事做,直到读或写信息完成,那么这

正是你想要的.如果你的应用包括了一个用户界面,它还需要响应用户的操作,那么,你可能想产生一个独立的线程去读写.当服务器sockets形成

一个blocking连接时,他们常常产生独立的线程给每一个客户连接,所以没有客户需要等待直到其他客户完成通过连接读或写操作.在默认情况下

,服务器sockets使用TServerClientThread对象去实现为每个连接执行不同的线程. 

      TServerClientThread对象模拟发生在non-blocking连接中的OnClientRead和OnClientWrite事件.可是,这些事件发生在监听socket上时,

不是本地线程(thread-local).如果客户请求频繁,你将想建立你自己的TServerClientThread子类去提供一个安全线程(Thread-Safe)去完成读

和写操作. 

转载地址:http://teyva.baihongyu.com/

你可能感兴趣的文章
glibc的了解,对内核的封装
查看>>
Shell中的${},##和%%的使用
查看>>
Spring学习笔记之 Spring IOC容器(一)之 实例化容器,创建JavaBean对象,控制Bean实例化,setter方式注入,依赖属性的注入,自动装配功能实现自动属性注入...
查看>>
提高夜晚学习效率的建议
查看>>
跨域代码 手机号码
查看>>
android studio安装须知
查看>>
SVG六基本元素
查看>>
定制Eclipse IDE之插件篇(二)
查看>>
引用 LPSTR、LPCSTR、LPTSTR、LPCTSTR、LPWSTR及LPCWSTR的意义及区别
查看>>
Codeforces 527C Glass Carving(Set)
查看>>
PHP获取表单方法
查看>>
SQLServer复制表
查看>>
乞讨 间隔[a,b]在见面p^k*q*^m(k>m)中数号码
查看>>
验证LeetCode Surrounded Regions 包围区域的DFS方法
查看>>
Mongodb 之insert瞬时完成,测试数据---飞天博客
查看>>
实时监听输入框值变化:oninput & onpropertychange
查看>>
消息队列规范及实现
查看>>
jQuery整理您的笔记----jQuery开始
查看>>
多数据源问题--Spring+Ibatis 访问多个数据源(非分布式事务)
查看>>
vim 设置 swap file, 防止 同一个文件同时被多次打开,而且有恢复的功效
查看>>