python中怎么使用TCP实现对话客户端和服务器

TCP 客户端

一个使用tcp协议实现可连续对话的客户端示例代码:

import socket# 客户端配置HOST = 'localhost'PORT = 12345# 创建TCP套接字并连接服务器client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)client_socket.connect((HOST, PORT))while True:    # 获取用户输入    message = input("请输入要发送的消息:")    # 发送消息到服务器    client_socket.sendall(message.encode("utf-8"))    # 接收服务器传回的消息    data = client_socket.recv(1024)    print(f"收到来自服务器的消息:{data.decode('utf-8')}")# 关闭套接字client_socket.close()

登录后复制

在这个示例中,我们首先创建了一个TCP套接字,并使用connect()函数连接到指定的服务器地址和端口。然后,我们通过用户输入不断发送消息到服务器,并等待服务器响应并显示其结果。请注意,由于TCP是面向连接的协议,因此我们可以通过该连接保证消息的可靠性和顺序性。

最后,我们通过close()函数关闭套接字。

需要注意的是,当我们使用TCP协议时,需要确保服务端也使用TCP协议进行相应的通信。

TCP 服务端

以下是一个使用TCP协议实现可连续对话的服务端示例代码:

立即学习“Python免费学习笔记(深入)”;

import socket# 服务器配置HOST = 'localhost'PORT = 12345# 创建TCP套接字并绑定到地址和端口server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)server_socket.bind((HOST, PORT))# 监听连接server_socket.listen()# 接受连接并与客户端建立通信client_socket, client_address = server_socket.accept()print(f"与客户端 {client_address} 建立连接。")while True:    # 接收客户端传来的消息    data = client_socket.recv(1024)    print(f"来自{client_address}的消息:{data.decode('utf-8')}")    if not data: # 如果客户端关闭了连接,则退出循环         break    # 获取用户输入    message = input("请输入要发送的消息:")    # 发送消息到客户端    client_socket.sendall(message.encode("uft-8"))# 关闭套接字client_socket.close()server_socket.close()

登录后复制

在这个示例中,我们首先创建了一个TCP套接字,并将其绑定到指定的地址和端口。然后,我们通过listen()函数开始监听客户端连接请求。

当有客户端连接时,我们调用accept()函数接受连接并返回客户端套接字和地址。然后,我们通过循环不断接收和发送数据,从而实现了可连续对话的功能。

请注意,由于TCP是面向连接的协议,因此我们可以通过该连接保证消息的可靠性和顺序性。最后,我们通过close()函数关闭套接字。

需要注意的是,在实际开发中,我们可能需要为每个连接创建一个新的线程或进程,以便能够同时处理多个客户端连接。

以上就是python中怎么使用TCP实现对话客户端和服务器的详细内容,更多请关注【创想鸟】其它相关文章!

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至253000106@qq.com举报,一经查实,本站将立刻删除。

发布者:PHP中文网,转转请注明出处:https://www.chuangxiangniao.com/p/2235233.html

(0)
上一篇 2025年2月26日 17:56:48
下一篇 2025年2月18日 08:07:28

AD推荐 黄金广告位招租... 更多推荐

相关推荐

  • 在Python中怎么将天数添加到日期

    使用 datetime 模块中的 timedelta() 方法将天数添加到日期中,例如 result_1 = date_1 + timedelta(days=3)。 timedelta 方法可以传递天数参数并将指定的天数添加到日期。 fro…

    编程技术 2025年2月26日
    200
  • 怎么用Python实现报表自动化

    Excel的基本组成 我们一般在最开始做报表的时候,基本都是从excel开始的,都是利用excel在做报表,所以我们先了解下excel的基本组成。 下图是Excel的中各个部分的组成关系,我们工作中每天会处理很多Excel文件,一个Exce…

    2025年2月26日 编程技术
    200
  • 怎么利用Python实现网络测试

    speedtest cli 专为软件开发人员、系统管理员和计算机爱好者等打造,是 ookla® 提供技术支持的首款正式 linux 本机 speedtest 应用程序。 Python语言编写的Speedtest CLI可在命令行直接运行,实…

    编程技术 2025年2月26日
    200
  • Python 实现 PD 文字识别、提取并写入 CSV 文件脚本分享

     一、前言 二、需求描述 三、开始动手动脑 3.1 安装相关第三方包 3.2 导入需要用到的第三方库 3.3 读取pdf文件,并识别内容 3.4 对识别的数据进行处理,写入csv文件 总结 1. 前言 扫描件一直受大众青睐,任何纸质资料在扫…

    2025年2月26日 编程技术
    200
  • python web.py怎么启动https端口

    python web.py启动https端口         web.py启动https端口需要ssl证书,如果没有ssl证书,那么可以通过如下方式生成。 openssl genrsa -des3 -out server.key 1024o…

    编程技术 2025年2月26日
    200
  • 如何使用Python对网易云歌单数据分析及可视化

    项目概述 1.1项目来源 网易云音乐是一款由网易开发的音乐产品,是网易杭州研究院的成果 ,依托专业音乐人、dj、好友推荐及社交功能,在线音乐服务主打歌单、社交、大牌推荐和音乐指纹,以歌单、dj节目、社交、地理位置为核心要素,主打发现和分享。…

    2025年2月26日 编程技术
    200
  • python排序算法之选择排序怎么实现

    一、前言 初级排序算法是指几种较为基础且容易理解的排序算法。初级排序算法包括插入排序、选择排序和冒泡排序3种。虽然它们的效率相对于高级排序算法偏低,但是在了解初级排序算法之后,再去学习相对复杂的高级排序算法会容易许多。 二、描述 选择排序表…

    2025年2月26日
    200
  • 怎么使用Python中的正则表达式处理html文件

    使用python中的正则表达式处理html文件 finditer方法是一种全匹配方法。已经使用过findall方法的话,该方法将返回由多个匹配字符串组成的列表。对于多个匹配项,finditer会按顺序返回一个迭代器,每个迭代生成一个匹配对象…

    编程技术 2025年2月26日
    200
  • Python中的self怎么使用

    在介绍python的self用法之前,先来介绍下python中的类和实例我们知道,面向对象最重要的概念就是类(class)和实例(instance),类是抽象的模板,比如学生这个抽象的事物,可以用一个student类来表示。而实例是根据类创…

    编程技术 2025年2月26日
    200
  • Python类的基本使用方法有哪些

    1、面向对象 类(class):是一种用来描述具有相同属性和方法的对象的集合。 类变量:类变量在整个实例化的对象中是公用的。一般定义在类中且在函数体之外。 方法:类中的函数 数据成员:类变量或者实例变量用于处理类及其实例对象的相关的数据。 …

    编程技术 2025年2月26日
    200

发表回复

登录后才能评论