当前位置: 首页 > news >正文

Python实现TCP和UDP通信

目录

一:TCP

二:UDP


一:TCP

在Python中实现TCP通信可以通过使用内置的socket模块来完成。以下是一个简单的示例,展示了如何使用Python的socket模块创建一个TCP客户端和服务器。

TCP服务器

import socket def start_server(): server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) server_socket.bind(('localhost', 12345)) # 绑定IP地址和端口号 server_socket.listen(1) # 开始监听,参数是队列大小 print("Server is listening...") while True: client_socket, addr = server_socket.accept() # 接受客户端连接请求 print(f"Connection from {addr} has been established!") # 在这里,你可以发送和接收数据 client_socket.send(b"Hello from server!") # 发送数据到客户端 data = client_socket.recv(1024) # 从客户端接收数据 print(f"Received data: {data.decode()}") client_socket.close() # 关闭连接 if __name__ == "__main__": start_server()

TCP客户端

import socket  

  

def start_client():  

    client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)  

    client_socket.connect(('localhost', 12345)) # 连接到服务器  

  

    data = client_socket.recv(1024) # 从服务器接收数据  

    print(f"Received data: {data.decode()}")  

  

    client_socket.send(b"Hello from client!") # 发送数据到服务器  

    client_socket.close() # 关闭连接  

  

if __name__ == "__main__":  

    start_client()

在这个示例中,服务器首先创建一个socket,然后绑定到一个本地IP地址和一个端口号,并开始监听连接请求。当一个客户端尝试连接到服务器时,服务器接受连接请求,然后发送一条消息给客户端。客户端则连接到服务器,接收服务器的消息,然后发送一条消息回服务器。

二:UDP

UDP服务器

import socket  

  

def start_udp_server():  

    server_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) # 创建UDP socket对象  

    server_socket.bind(('localhost', 12345)) # 绑定IP地址和端口号  

  

    while True:  

        data, addr = server_socket.recvfrom(1024) # 接收客户端发送的数据,最大长度为1024字节  

        print(f"Received data from {addr}")  

        print(f"Data: {data.decode()}")  

  

if __name__ == "__main__":  

    start_udp_server()

UDP客户端

import socket  

  

def start_udp_client():  

    client_socket = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) # 创建UDP socket对象  

  

    client_socket.sendto(b"Hello from client!", ('localhost', 12345)) # 发送数据到服务器  

    data, addr = client_socket.recvfrom(1024) # 接收服务器返回的数据,最大长度为1024字节  

    print(f"Received data from {addr}")  

    print(f"Data: {data.decode()}")  

  

if __name__ == "__main__":  

    start_udp_client()

在这个示例中,服务器首先创建一个UDP socket对象,然后绑定到一个本地IP地址和一个端口号。当客户端尝试发送数据到服务器时,服务器通过recvfrom()方法接收数据,然后打印出来。客户端则通过sendto()方法发送数据到服务器,然后等待服务器的响应,通过recvfrom()方法接收服务器的响应数据,然后打印出来。

http://www.lryc.cn/news/292862.html

相关文章:

  • 用HTML5 + JavaScript实现下雪效果
  • PDF操作——批量删除末页
  • Jasperreport 生成 PDF之省纸模式
  • IDEA反编译Jar包
  • MySQL 备份恢复
  • UbuntuServer22.04LTS在线安装MySQL8.x
  • GmSSL - GmSSL的编译、安装和命令行基本指令
  • 面试题:为什么MySQL不建议使用NULL作为列默认值?
  • ClickHouse基于数据分析常用函数
  • c语言编译和链接
  • C++ printf解释
  • paddle环境安装
  • kingbase配置SSL双向认证
  • Android Studio 使用小记2 Flutter提交SVN时需要忽略哪些文件
  • 搜索引擎评价指标及指标间的关系
  • armbian修改docker目录到硬盘
  • cip、ethernet/ip开源协议栈:开发源代码
  • 网络原理TCP/IP(2)
  • Echars3D 饼图开发
  • 【PaddleSpeech】语音合成-男声
  • AI-数学-高中-17-三角函数的定义
  • centOS/Linux系统安全加固方案手册
  • 编程实例分享,眼镜店电脑系统软件,配件验光管理顾客信息记录查询系统软件教程
  • 完整的 HTTP 请求所经历的步骤及分布式事务解决方案
  • SpringMVC请求和响应
  • AIGC实战——深度学习 (Deep Learning, DL)
  • Django_基本增删改查
  • 数仓治理-存储资源治理
  • Linux系统安全:安全技术 和 防火墙
  • 3dmatch-toolbox详细安装教程-Ubuntu14.04