tcp socket客户端和服务端示例分享

TCP Socket 客户端和服务端示例分享

本文是关于如何使用 Python 编写 TCP Socket 客户端和服务端的攻略。TCP (Transmission Control Protocol) 是一种传输层协议,它保证数据能够在两个应用进程之间可靠的传输。

客户端示例

以下是 Python 编写的简单 TCP Socket 客户端示例:

import socket

HOST = '127.0.0.1'  # 服务器的 IP 地址
PORT = 65432        # 服务器监听的端口号

with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
    s.connect((HOST, PORT))
    s.sendall(b'Hello, world')
    data = s.recv(1024)

print('Received', repr(data))

这个示例程序使用了 Python 内置的 socket 模块。首先创建了一个 TCP socket 对象,在 connect 方法里面指定了服务器的 IP 地址和端口号。然后使用 sendall 方法发送一个字符串给服务器。接着调用 recv 方法等待服务器返回数据(最多接收 1024 字节)。最后将服务器返回的数据打印出来。

服务端示例

以下是 Python 编写的简单 TCP Socket 服务器示例:

import socket

HOST = '127.0.0.1'  # 监听的 IP 地址
PORT = 65432        # 监听的端口号

with socket.socket(socket.AF_INET, socket.SOCK_STREAM) as s:
    s.bind((HOST, PORT))
    s.listen()
    conn, addr = s.accept()
    with conn:
        print('Connected by', addr)
        while True:
            data = conn.recv(1024)
            if not data:
                break
            conn.sendall(data)

这个示例程序也使用了 Python 内置的 socket 模块。首先创建了一个 TCP socket 对象,并使用 bind 方法将它和指定的 IP 地址与监听的端口号绑定。接着调用 listen 方法等待客户端的连接,一旦有客户端连接进来,就使用 accept 方法建立连接。在建立连接后,服务端就可以收到客户端发送过来的数据。服务端接收客户端发送的数据使用 recv 方法,如果客户端没有发送数据或者数据已经全部接收完了,则会退出接收循环。最后使用 sendall 方法将客户端发送的全部数据回传给客户端。

总结

本文通过两个示例代码,演示了如何使用 Python 编写 TCP Socket 客户端和服务端程序。通常情况下,TCP Socket 的应用场景有很多,比如 Web 服务器、文件传输等。只要了解了 TCP Socket 编程的基本原理和方法,就可以自己开发出更加复杂的应用程序。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:tcp socket客户端和服务端示例分享 - Python技术站

(0)
上一篇 2023年6月27日
下一篇 2023年6月27日

相关文章

  • js实现首屏延迟加载实现方法 js实现多屏单张图片延迟加载效果

    首屏延迟加载实现方法 首屏延迟加载可以提高网站的加载速度,让用户更快地看到页面的内容。实现方法如下: 步骤一:将首屏需要展示的图片的src属性设置为data-src <img data-src="图片地址" alt="图片描述"> 步骤二:通过JavaScript获取屏幕高度和滚动距离 var client…

    other 2023年6月25日
    00
  • Linux宕机最安全的重启方法(你肯定不知道)

    Linux宕机最安全的重启方法(你肯定不知道) 背景 Linux操作系统在运行过程中,由于各种原因可能会出现宕机的情况,这时候需要进行重启操作。在重启操作时,如果不正确处理,可能会造成数据丢失、文件系统损坏等后果,因此重启方法的选择非常重要。 解决方案 下面是几种安全可靠的Linux宕机重启方法: 1. 快捷键重启 当Linux操作系统宕机时,我们可以通过按…

    other 2023年6月26日
    00
  • win10安装office鼠标右键没有新增office项该怎么办?

    问题描述 在Win10中安装Office后发现鼠标右键菜单中没有新增Office项。 解决方案 1. 手动启用Office插件 首先打开Office软件,在菜单栏中找到“文件”选项,点击进入。 然后在“文件”界面中点击“选项”按钮。 在“选项”界面中,选择“自定义功能区”,并在右侧找到“主选项卡”下的“右键菜单”。 勾选“右键菜单”下的“禁用此命令”旁边的框…

    other 2023年6月27日
    00
  • SpringBoot @ConfigurationProperties使用详解

    SpringBoot @ConfigurationProperties使用详解 在Spring Boot中,@ConfigurationProperties注解是一个非常有用的注解,它可以帮助我们将配置文件中的属性值绑定到Java对象上。这样,我们就可以方便地通过Java对象来获取配置文件中的属性值,而不需要手动解析配置文件。 1. 创建配置类 首先,我们需…

    other 2023年7月28日
    00
  • node升级的正确方法

    Node升级的正确方法 在使用Node时,我们可能会遇到需要升级Node版本的情况。针对这种情况,本文将介绍一些升级Node的正确方法。 1. 使用Node版本管理器(NVM) Node版本管理器(NVM)是一个十分方便的工具,它可以帮助我们快速地在不同的Node版本间切换,并且可以帮助我们更方便地升级Node。 安装NVM 在Linux系统下,我们可以使用…

    其他 2023年3月29日
    00
  • cpupower命令–调整cpu主频

    cpupower命令 – 调整CPU主频 cpupower是一个Linux命令行工具,用于管理CPU的功耗和性能设置。它可以用来调整主频以提高系统性能或节省电力。在本攻略中,我们将详细介绍如何使用cpupower命令来调整CPU主频,包括安装、使用和示例说明等内容。 安装cpupower命令 大多数Linux发行版中,cpupower命令已经预装。如果您的系…

    other 2023年5月8日
    00
  • C语言数据结构系列篇二叉树的概念及满二叉树与完全二叉树

    C语言数据结构系列篇:二叉树的概念及满二叉树与完全二叉树 一、二叉树的概念 二叉树是一种特殊的树型结构,它的每个节点最多有两个子节点,称为左子节点和右子节点。二叉树可以为空树,也可以是非空树。二叉树的每个节点保存着某种数据,可以是整数、浮点数、字符串等。 下图是一个简单的二叉树示例: 1 / \ 2 3 / \ 4 5 其中,数字表示节点保存的数据。根节点是…

    other 2023年6月27日
    00
  • [下载]Win10技术预览版Build 9926下载地址(含中文)

    [下载]Win10技术预览版Build 9926下载地址(含中文)攻略 本攻略将详细介绍如何下载并安装Win10技术预览版Build 9926,并提供下载地址和示例说明。 下载地址 你可以从以下地址下载Win10技术预览版Build 9926: 官方下载地址 第三方下载地址 步骤说明 打开浏览器,访问上述提供的下载地址之一。 在下载页面中,选择适用于你的计算…

    other 2023年8月3日
    00
合作推广
合作推广
分享本页
返回顶部