单处事器 VS 单客户端

- 在个中一个 PowerShell 中运行呼吁 python3 ./tcp_server.py,处事器表现 Waiting for connection...,并监听当田主机的 TCP 6000 端口,进入守候毗连状态;
- 在另一个 PowerShell 中运行呼吁 python3 ./tcp_client.py,处事器表现 Accept new connection from 127.0.0.1:42101,完成与当田主机的 TCP 42101 端口成立通讯毗连,并向客户端发送接待信息与扣问信息,客户端吸取到信息后打印输出;
- 若客户端向处事器发送字符串 Alice 与 Bob,则收随处事器的问候相应信息;
- 若客户端向处事器发送空字符串,则被要求从头输入;
- 若客户端向处事器发送字符串 exit,则收随处事器的竣事相应信息;
- 客户端与处事器之间的通讯毗连已封锁,处事器表现 Connection from 127.0.0.1:42101 is closed,并继承监听客户端的毗连哀求。
单处事器 VS 多客户端

- 在个中一个 PowerShell 中运行呼吁 python3 ./tcp_server.py,处事器表现 Waiting for connection...,并监听当田主机的 TCP 6000 端口,进入守候毗连状态;
- 在另三个 PowerShell 中别离运行呼吁 python3 ./tcp_client.py,处事器同时与当田主机的 TCP 42719、42721、42722 端口成立通讯毗连,并别离向客户端发送接待信息与扣问信息,客户端吸取到信息后打印输出;
- 三台客户端别离向处事器发送字符串 Client1、Client2、Client3,并收随处事器的问候相应信息;
- 全部客户端别离向处事器发送字符串 exit,并收随处事器的竣事相应信息;
- 全部客户端与处事器之间的通讯毗连已封锁,处事器继承监听客户端的毗连哀求。
0x06 Python API Reference
socket 模块
本节先容上述代码顶用到的内建模块 socket,是 Python 收集编程的焦点模块。
socket() 函数
socket() 函数用于建设收集通讯中的套接字工具。函数原型如下:
- socket.socket(family=AF_INET, type=SOCK_STREAM, proto=0, fileno=None)
- family 参数代表地点族(Address Family),默认值为 AF_INET,用于 IPv4 收集通讯,常用的尚有 AF_INET6,用于 IPv6 收集通讯。family 参数的可选值取决于本机操纵体系。
- type 参数代表套接字的范例,默认值为 SOCK_STREAM,用于 TCP 协议(面向毗连)的收集通讯,常用的尚有 SOCK_DGRAM,用于 UDP 协议(无毗连)的收集通讯。
- proto 参数代表套接字的协议,默认值为 0,一样平常忽略该参数,除非 family 参数为 AF_CAN,则 proto 参数需配置为 CAN_RAW 或 CAN_BCM。
- fileno 参数代表套接字的文件描写符,默认值为 None,若配置了该参数,则其他三个参数将会被忽略。
建设完套接字工具后,需行使工具的内置函数完成收集通讯进程。留意,以下函数原型中的「socket」是指 socket 工具,而不是上述的 socket 模块。
bind() 函数
(编辑:湖南网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|