,,,,
<强> 强>
。
<强> 强>
,
<强> 强>
<强> 强>
=
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,,数=
,
,
强>
,一种为。前者提供了许多方法:像绑定,监听,运行……(也就是的过程)后者则专注于如何处理用户所发送的数据(也就是事务逻辑)。
。
,
<>之前,==,=,=,,,,===
,
强>
,
,
<李id=" socketserver.BaseRequestHandler。设置“>
强>
李> <李>代码>,方法执行任何所需的初始化操作。没有默认的实现。
李>
- <李id=" socketserver.BaseRequestHandler。处理">
强>
李> <李>代码;客户端地址as <代码类=" xref py py-attr docutils文本”> 代码;和服务器实例as <代码类=" xref py py-attr docutils文字"> >代码,以防它需要访问每台服务器的信息。
代码>,是不同的数据报或流服务。流服务,<代码类=" xref py py-attr docutils文字"> 代码>,是一个套接字对象;对于数据报服务,,<代码类=" xref py py-attr docutils文字"> 代码>,是一对字符串和插座。
李>
- <李id=" socketserver.BaseRequestHandler。完成">
强>
李> <李>代码>,方法执行任何需要清理行动。没有默认的实现。If <代码类=" xref py py-meth docutils文字"> 代码>,引发一个异常,这个函数将不会被调用。
李>