python3利用Socket实现通信的方法示例

下面我来为你详细讲解“python3利用Socket实现通信的方法示例”的完整攻略。

什么是Socket?

Socket,又称套接字,是计算机网络中两个程序间的通信机制。它定义了连接的概念,即通信的两个端点之间的一种通用的数据传输方式。

Socket有两种类型,分别为TCP和UDP。TCP(Transmission Control Protocol)是一种面向连接的协议,即在通信中两个应用程序必须先建立一条可靠的连接才能进行数据传输,保证数据传输的完整性和可靠性;而UDP(User Datagram Protocol)是一种无连接的协议,即发送数据前不需要先建立连接,数据包也不具有可靠性和序列号,只关心是否发送成功。

Python3利用Socket实现通信的方法示例

1. TCP通信示例

服务器端代码

import socket

server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)  # 创建TCP Socket

ip_port = ('localhost', 8888)  # 设置IP和端口号

server.bind(ip_port)  # Socket绑定IP和端口号

server.listen(5)  # 开始监听,最大等待数为5

while True:
    conn, addr = server.accept()  # 接收客户端连接请求
    print(f'Connected from {addr}')  # 打印客户端的IP地址和端口号
    conn.send(b'Welcome!')  # 向客户端发送欢迎信息
    conn.close()  # 关闭连接

客户端代码

import socket

client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)  # 创建TCP Socket

ip_port = ('localhost', 8888)  # 设置服务器IP和端口号

client.connect(ip_port)  # 发起连接请求

data = client.recv(1024)  # 接收数据,缓冲区大小为1024字节

print(f'{data.decode()} from {ip_port}')  # 打印接收到的数据以及服务器的IP地址和端口号

client.close()  # 关闭连接

2. UDP通信示例

服务器端代码

import socket

server = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)  # 创建UDP Socket

ip_port = ('localhost', 9999)  # 设置IP和端口号

server.bind(ip_port)  # Socket绑定IP和端口号

while True:
    data, addr = server.recvfrom(1024)  # 接收客户端发送的数据以及客户端的IP地址和端口号
    print(f"Received from {addr}: {data.decode()}")  # 打印接收到的数据以及客户端的IP地址和端口号
    server.sendto(b'Welcome!', addr)  # 向客户端发送欢迎信息

客户端代码

import socket

client = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)  # 创建UDP Socket

ip_port = ('localhost', 9999)  # 设置服务器IP和端口号

client.sendto(b'Hello, World!', ip_port)  # 向服务器发送数据

data, addr = client.recvfrom(1024)  # 接收服务器发送的数据以及服务器的IP地址和端口号

print(f'{data.decode()} from {addr}')  # 打印接收到的数据以及服务器的IP地址和端口号

client.close()  # 关闭连接

以上就是Python3利用Socket实现通信的方法示例。在实际开发中,我们可以根据需求和场景灵活选择TCP或UDP通信。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:python3利用Socket实现通信的方法示例 - Python技术站

(0)
上一篇 2023年5月18日
下一篇 2023年5月18日

相关文章

  • 云计算初识

    什么是云计算 云计算是一种虚拟化技术(Virtualization)。硬件的切换成本十分高,通过软件来虚拟不同硬件的方式可用满足很多场景的业务需求。 对业务的分类包括:Iaas、Paas、Saas、Xaas。 Iaas(Infrastructure as a Service):产品有阿里云 Paas(Platform as a Service):产品有Tom…

    云计算 2023年4月12日
    00
  • OpenStack初始化浅析

    OpenStack初始化浅析 OpenStack是一个开源的云计算平台,可以用于构建公有云、私有云和混合云等多种云计算环境。在使用OpenStack之前,需要进行初始化配置,以确保OpenStack的正常运行。下面是一些OpenStack初始化的攻略。 1. 安装OpenStack 在进行OpenStack初始化之前,需要先安装OpenStack。OpenS…

    云计算 2023年5月16日
    00
  • Asp.net core WebApi 使用Swagger生成帮助页实例

    欢迎您使用 Asp.net core WebApi 来创建 Web 应用程序。Swagger是一个流行的API文档工具,它可以根据代码中的注释生成API的帮助文档。在本文中,我将向您演示如何将Swagger集成到Asp.net core WebApi中,以便快速生成API的帮助文档。 安装 Swagger 首先,您需要在您的项目中安装 Swagger。您可以…

    云计算 2023年5月17日
    00
  • 2019年4月值得一读的9本技术书籍(机器学习、云计算、Android等书籍)! …

    导语:当你困惑时,书给你启迪当你迷惘时,书给你指路。当你落寞时,书给你勇气。当你悲伤时,书给你欢愉。当你狂躁时,书给你冷静。当你成功时,书给你导航。我们整理出2019年4月值得一读的9本技术书籍,其中涉及机器学习、人工智能、Android等方面。这个春天就让书陪你度过吧。 1、《从机器学习到深度学习:基于scikit-learn与TensorFlow的高效开…

    云计算 2023年4月13日
    00
  • 王家林的“云计算分布式大数据Hadoop实战高手之路—从零开始”的第九讲Hadoop图文训练课程:剖析NameNode和Secondary NameNode的工作机制和流程

    本讲主要剖析SecondaryNameNode。   “云计算分布式大数据Hadoop实战高手之路”之完整发布目录 云计算分布式大数据实战技术Hadoop交流群:312494188,每天都会在群中发布云计算实战性资料,欢迎大家加入!   Hadoop在启动的时候,会启动SecondaryNameNode,我们使用JPS命令查看一下查看一下Hadoop启动时启…

    云计算 2023年4月11日
    00
  • Python实现的北京积分落户数据分析示例

    可以先建立一个问题与解答的结构: 问题 如何用Python实现北京积分落户数据的分析?有哪些常用的分析手段? 解答 Python实现北京积分落户数据分析,需要依次完成以下几步: 数据获取:从官网或其他渠道获取数据,常用格式为CSV或Excel格式; 数据清理:将数据表中的重复记录、缺失值和异常值进行处理; 数据分析:根据需求,使用合适的算法和可视化工具进行数…

    云计算 2023年5月18日
    00
  • 解析OpenSSL程序概念及震惊业界的“心脏出血”漏洞

    解析OpenSSL程序概念及“心脏出血”漏洞攻略 OpenSSL程序概念 OpenSSL是一套开放源代码的加密类库,提供了多种加密算法和协议功能,能够支持SSL/TLS协议,而且应用广泛。其架构包括四层:应用程序接口层(API)、SSL/TLS层、加密层和基础支持层。其中SSL/TLS层是OpenSSL程序的核心,正是这一层实现了HTTPS协议以及其他安全协…

    云计算 2023年5月18日
    00
  • 云计算背后的秘密(1)-MapReduce(转)

    之前在IT168上已经写了一些关于云计算误区的文章,虽然这些文章并不是非常技术,但是也非常希望它们能帮助大家理解云计算这一新浪潮,而在最近几天,IT168的唐蓉同学联系了我,希望我能将云计算背后的一些核心技术介绍给IT168的读者,虽然我本身已经忙于其它事务,但是由于云计算的核心技术是我最熟悉和最擅长,而且宣传这些技术也是我写《剖析云计算》一书和建立Peop…

    云计算 2023年4月13日
    00
合作推广
合作推广
分享本页
返回顶部