python基础之插座与socketserver

  

,,,,

<强>

<强>

,

<强>

<强>

=

 

 s1.listen (, backlog ),
  #积压指定最多允许多少个客户连接到服务器。它的值至少为1。收到连接请求后,这些请求需要排的队,如果队列满,就拒绝请求。

<>之前连接,,address =, s1.accept() #调用接收方法时,插座会时入“等待”状态,也就是处于阻塞状态。客户请求连接时,方法建立连接并返回服务器。#接受方法返回一个含有两个元素的元组(连接,地址)。   第号一个元素连接是所连接的客户端套接字的对象(实际上是该对象的内存地址),服务器必须通过它与客户端通信;   #第二个元素,地址是客户的互联网地址。

 

 s1.close() #关闭套接字

<强>

 import 插座
  s2=socket.socket () 

 s2.connect(地址)#连接到地址处的套接字。一般,地址的格式为元组(主机名、端口),如果连接出的错,返回插座。错误错误。

 s2.recv (bufsize[标记])#接受套接字的数据。数据以字符串形式返回,bufsize指定最多可以接收的数量.flag提供有关消息的其他信息,通常可以忽略s2.send (string[标记])#将字符串中的数据发送到连接的套接字。返回值是要发送的字节数量,该数量可能小于字符串的字节大小。即:可能未将指定内容全部发送。

 s2.close () 

,

 socket.getaddrinfo(主机,港口,家庭=0,,=0,类型,典型=0,,标志=0),10061=0,,数=

,

,

,一种为。前者提供了许多方法:像绑定,监听,运行……(也就是的过程)后者则专注于如何处理用户所发送的数据(也就是事务逻辑)。


,

<>之前,==,=,=,,,,===

,

,

,

 python基础之插座与socketserver”>, </p> <p> </p> <p> </p> <p> </p> <p>, </p> <p> </强> </p> <p> </p> <p> </p> <p>, </p> <p> </p> <ul类= <李id=" socketserver.BaseRequestHandler。设置“>

<李>

,方法执行任何所需的初始化操作。没有默认的实现。

<李id=" socketserver.BaseRequestHandler。处理">

<李>

代码,以防它需要访问每台服务器的信息。

,是不同的数据报或流服务。流服务,<代码类=" xref py py-attr docutils文字"> ,是一个套接字对象;对于数据报服务,,<代码类=" xref py py-attr docutils文字"> ,是一对字符串和插座。

<李id=" socketserver.BaseRequestHandler。完成">

<李>

,方法执行任何需要清理行动。没有默认的实现。If  <代码类=" xref py py-meth docutils文字"> ,引发一个异常,这个函数将不会被调用。

 python基础之插座与socketserver”>, </p> <p>则都重写了setup()/()完成。</p> <p>之中的一个作为父类,然后自定义一个请求处理类,并在其中重写处理()方法即可。</p> <p>, </p> <p> <强> </强> </p> <p>作为父类也可),并重写它的处理()方法。<br/> </p> <p> </p> <p> </p> <p> <br/> </p><h2 class=python基础之插座与socketserver