zoukankan      html  css  js  c++  java
  • socket Blocking connections

    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)去完成读

    和写操作. 

  • 相关阅读:
    svn: E120106: ra_serf: The server sent a truncated HTTP response body.
    HTTP method POST is not supported by this URL解决
    TinyOS文件结构清单解析
    Crush Course 神话学笔记
    Django 入门
    Crush Course 心理学笔记
    网络相关知识汇总链接
    9.21 小程序开发培训讲座
    论文简读之LAIA
    Android studio 的那些坑
  • 原文地址:https://www.cnblogs.com/hnxxcxg/p/2940825.html
Copyright © 2011-2022 走看看