轻松下载一个网络调试助手,用python实现TCP通信
前言
在学习计算机网络编程中必不可少的就是用socket套接字工具来开展计算机和计算机之间的通信
其中:
- socket套接字就像电话机,
- IP地址就像是电话号码,
- 按TCP(Transmission Control Protocol,传输控制协议)步骤来建立通信
一、TCP是什么?
1.TCP(Transmission Control Protocol)概念
- 是传输控制协议,就是面向连接的,可靠的,基于字节流的传输层通信协议
2.TCP通信的简明三步骤
- 建立连接
- 传输数据
- 关闭连接
3.TCP的可靠之处
- 发送应答机制---每段报文有对方应答才算传送成功
- 超时重传---在发送报文后的指定时间内未得应答就会重新发送
- 错误校验---在发送和接收时都要校验数据的正确性和完整性
- 流量控制和阻塞管理---避免因发送过快接收方来不及反应和接收
二、NetAssist软件应用
1.软件下载和安装
- 百度搜索'netassist(网络调试助手)'找个知名的网站下载即可
- 程序体积小,下载很快
- 一键安装和打开
2.软件设置
- 打开界面---网络调试助手
- ''网络设置''---''协议类型''--下选框选择'TCP Server'--选择此端作为TCP协议的服务器端
- ''网络设置''---''本机主机地址''--下选框选择一个是本机的IPV4地址,一个是HOST地址,任选其一即可
- ''网络设置''---''本机主机端口''--'8080'--一般选择8000以上的端口都可以
- 点击黑色的''打开''按钮,点亮开关
- 接受设置和发送设置默认都可
三、在python中编写TCP客户端五步骤
#导入模块
import socket
#建立程序入口
if __name__ == '__main__':
# 1、创建客户端套接字对象
client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 2、和服务器端套接字建立连接(参数必须是一个元祖)
client.connect(("127.0.0.1", 8080))
# 3、发送数据,必须是GBK编码
client.send('不出去走走吗周末?'.encode(encoding='gbk'))
# 4、接收数据
recv_data = client.recv(1024).decode('gbk')
print(recv_data)
# 5、关闭客户端套接字
client.close()
最后
- 运行程序代码,就能在网络调试助手上接收到相应的消息
- 也可以在网络调试助手的对话框里回复消息
- 回复的消息也会弹出在python控制台上
三、在python中编写TCP服务器端七步骤
#导入模块
import socket
#程序入口
if __name__ == '__main__':
# 1、创建服务器端套接字对象
tcp_server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# 2、绑定IP地址与端口号
tcp_server_socket.bind(("127.0.0.1", 8888))
# 3、开启监听
tcp_server_socket.listen(128)
# 4、等待接收客户端连接请求
conn_socket, ip_port = tcp_server_socket.accept()
print('客户端IP+端口:', ip_port)
# 5、接收数据
recv_data = conn_socket.recv(1024)
print('接收到的数据:', recv_data.decode(encoding='gbk'))
# 6、发送数据
conn_socket.send("客户端的数据已经收到了".encode(encoding='gbk'))
# 7、关闭套接字
conn_socket.close()
tcp_server_socket.close()
需要注意的是:
- 在网络调试助手中需要先把协议类型改为''TCP Client''
- 再重新点击连接
- python中运行一下代码
- 网络调试助手中对话框可以发送数据
- python控制台接收数据
总结
以上就是所有内容
注意代码中的gbk编码,在网络调试助手中只能用这个编码
用utf-8会报错