0x04 TCP 客户端
- #!/usr/bin/env python3
- # -*- coding: utf-8 -*-
- #公众号:python学习开发
-
- import socket
- s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
- s.connect(("127.0.0.1", 6000))
- print(s.recv(1024).decode())
- data = "client"
- while True:
- if data:
- print(s.recv(1024).decode())
- data = input("Please input your name: ")
- if not data:
- continue
- s.send(data.encode())
- print(s.recv(1024).decode())
- if data == "exit":
- break
- s.close()
- Line 5:创建 socket 对象,第一个参数为 socket.AF_INET,代表采用 IPv4 协议用于网络通信,第二个参数为 socket.SOCK_STREAM,代表采用 TCP 协议用于面向连接的网络通信。
- Line 6:向 (“127.0.0.1”, 6000) 主机发起连接请求,即本地主机的 TCP 6000 端口。
- Line 7:连接成功后,接收服务器发来的欢迎信息 b"Welcome!n",并转换为字符串后打印输出。
- Line 9:创建一个非空字符串变量 data,并赋初值为 "client"(只要是非空字符串即可),用于判断是否接收来自服务器发来的询问信息 b"What's your name?"。
- Line 10:进入与服务器交互数据的循环阶段。
- Line 11:当变量 data 非空时,则接收服务器发来的询问信息。
- Line 13:要求用户输入名字。
- Line 14:当用户的输入为空时,则重新开始循环,要求用户重新输入。
- Line 16:当用户的输入非空时,则将字符串转换为 bytes 对象后发送至服务器。
- Line 17:接收服务器的响应数据,并将响应的 bytes 对象转换为字符串后打印输出。
- Line 18:当用户的输入为 "exit" 时,则终止与服务器交互数据的循环阶段,即将关闭套接字。
- Line 21:关闭套接字,不再向服务器发送数据。
0x05 TCP 进程间通信
将 TCP 服务器与客户端的脚本分别命名为 tcp_server.py 与 tcp_client.py,然后存至桌面,笔者将在 Windows 10 系统下用 PowerShell 进行演示。
小贴士:读者进行复现时,要确保本机已安装 Python 3,注意笔者已将默认的启动路径名 python 改为了 python3。 (编辑:惠州站长网)
【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!
|