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代码屏蔽F12,右键,粘贴,复制,剪切,选中,操作实例

    JS代码屏蔽F12、右键、粘贴、复制、剪切、选中等操作,是一种常见的前端安全措施,可以避免恶意用户通过浏览器的开发工具获取网页的源代码和敏感信息。在下面的回答中,我将提供一些实现JS的屏蔽操作的方法和示例代码,并进行一些解释说明。 1.屏蔽F12和右键操作 通过下面的JS代码可以屏蔽F12和右键操作: document.onkeydown = functio…

    other 2023年6月27日
    00
  • word2pdf

    Word转PDF Word转PDF是一种将Word文档转换为PDF格式的方法,它可以帮助我们更方便地共享和打印文档。以下是Word转PDF的完整攻略。 步骤 以下是Word转PDF的步骤: 打开Word文档。 点击“文件”菜单选择“另存为”。 在“文件类型”下拉菜单中选择“PDF”。 点击“保存”按钮,将Word文档保存为PDF格式。 示例 以下是两个示例,…

    other 2023年5月6日
    00
  • Linux sed命令的使用

    下面是关于Linux sed命令的使用的完整攻略: Linux sed命令的使用 什么是sed命令? Linux中的sed命令是一种流编辑器,用于根据特定的规则来编辑文本。通过使用sed命令,用户可以轻松地进行文本编辑和转换,而不需要在原始文件中进行修改。sed命令通常与其他Linux命令一起使用,例如grep、awk和cut等。 sed命令的语法 sed …

    other 2023年6月26日
    00
  • Win11关机后自动重启怎么办?Win11关机后自动重启的解决方法

    Win11系统在关机后自动重启的问题可能由多个原因引起,例如系统设置、驱动程序、设备冲突等。以下是解决Win11关机后自动重启的几种有效方法: 方法一:禁用快速启动 快速启动是Win11的一个功能,目的是让 Win11 开机速度更快。但是有时候它会引起关机后自动重启的问题。禁用快速启动可能会解决这个问题。 步骤如下: 在 Win11 桌面上按下 Win + …

    other 2023年6月26日
    00
  • 基于layui轮播图满屏是高度自适应的解决方法

    为了让你更好地理解“基于layui轮播图满屏是高度自适应的解决方法”,我为你准备了以下的详细攻略: 1.准备工作 在开始实现这个方法之前,我们首先需要准备以下工作: 一个基于layui框架的轮播图组件 一个能够实现高度自适应的外层容器 一个设备宽度的全局变量 2.实现方法 接下来,我们就可以开始着手实现高度自适应的轮播图了。具体的实现方法如下: 2.1.设置…

    other 2023年6月27日
    00
  • 浅谈Redis的异步机制

    浅谈 Redis 的异步机制 异步机制简介 Redis 是一款使用C语言开发的高性能键值数据库,其性能非常优秀,主要得益于其采用异步的机制来进行操作。 Redis 的异步机制主要包括 non-blocking I/O 和 异步命令执行 两种方式。 non-blocking I/O non-blocking I/O 简单来说就是非阻塞式 I/O 操作。传统阻塞…

    other 2023年6月27日
    00
  • Linux单用户模式(修改密码、运行级别)方法详解

    Linux单用户模式(修改密码、运行级别)方法详解的完整攻略 本文将为您提供Linux单用户模式(修改密码、运行级别)方法详解的完整攻略,包括介绍、步骤和两个示例说明。 介绍 Linux单用户模式是一种特殊的运行级别,可以在系统无法正常启动或需要进行系统维护时使用。在单用户模式下,系统只会启动最基本的服务和进程,用户可以进行系统维护和修复。本文将介绍如何进入…

    other 2023年5月6日
    00
  • SpringBoot的HandlerInterceptor中依赖注入为null问题

    在Spring Boot项目中,使用HandlerInterceptor拦截器进行请求的前置和后置处理时,我们可能会遇到依赖注入的问题,即在HandlerInterceptor拦截器中进行了依赖注入但注入的对象为null的情况。解决这个问题的完整攻略如下: 使用@Component注解 对于一般的组件,我们通常使用@Component注解来进行标记,让Spr…

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