用python和NetAssist来做TCP客户端和服务器端

轻松下载一个网络调试助手,用python实现TCP通信


前言

在学习计算机网络编程中必不可少的就是用socket套接字工具来开展计算机和计算机之间的通信

其中:

  • socket套接字就像电话机,
  • IP地址就像是电话号码,
  • 按TCP(Transmission Control Protocol,传输控制协议)步骤来建立通信

一、TCP是什么?

1.TCP(Transmission Control Protocol)概念

  • 是传输控制协议,就是面向连接的,可靠的,基于字节流的传输层通信协议

2.TCP通信的简明三步骤

  1. 建立连接
  2. 传输数据
  3. 关闭连接

3.TCP的可靠之处

  1. 发送应答机制---每段报文有对方应答才算传送成功
  2. 超时重传---在发送报文后的指定时间内未得应答就会重新发送
  3. 错误校验---在发送和接收时都要校验数据的正确性和完整性
  4. 流量控制和阻塞管理---避免因发送过快接收方来不及反应和接收

二、NetAssist软件应用

1.软件下载和安装

  •         百度搜索'netassist(网络调试助手)'找个知名的网站下载即可
  •         程序体积小,下载很快
  •         一键安装和打开

2.软件设置

  1. 打开界面---网络调试助手
  2. ''网络设置''---''协议类型''--下选框选择'TCP Server'--选择此端作为TCP协议的服务器端
  3. ''网络设置''---''本机主机地址''--下选框选择一个是本机的IPV4地址,一个是HOST地址,任选其一即可
  4. ''网络设置''---''本机主机端口''--'8080'--一般选择8000以上的端口都可以
  5. 点击黑色的''打开''按钮,点亮开关
  6. 接受设置和发送设置默认都可

三、在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会报错

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
好的,下面是一个简单的 Python 实现 TCP 客户端服务器端的示例代码: ### TCP 服务器端代码 ```python import socket # 创建 TCP 服务器端 socket server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 绑定地址和端口 server_socket.bind(('127.0.0.1', 8888)) # 开始监听连接请求 server_socket.listen(1) print('服务器启动,等待连接...') # 等待客户端连接 client_socket, client_address = server_socket.accept() print('客户端已连接:', client_address) while True: # 接收客户端消息 data = client_socket.recv(1024) if not data: # 客户端断开连接 break print('收到客户端消息:', data.decode()) # 发送响应消息 response = '已收到消息:{}'.format(data.decode()) client_socket.send(response.encode()) # 关闭连接 client_socket.close() server_socket.close() ``` ### TCP 客户端代码 ```python import socket # 创建 TCP 客户端 socket client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) # 连接服务器 client_socket.connect(('127.0.0.1', 8888)) print('已连接服务器...') while True: # 发送消息 message = input('请输入要发送的消息:') client_socket.send(message.encode()) # 接收响应消息 response = client_socket.recv(1024) print('收到服务器响应:', response.decode()) # 关闭连接 client_socket.close() ``` 以上代码仅作为 TCP 客户端服务器端的简单示例,实际应用中需要添加异常处理、多线程处理等功能以提高稳定性和性能。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值