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日

相关文章

  • CommonLisp中解析命令行参数示例

    Common Lisp中解析命令行参数是一个重要的主题。如果你需要从命令行中读取参数,那么了解这个过程是很有帮助的。下面是一个示例说明完整攻略: 1. 创建ARGPARSE解析器对象 要解析命令行参数,我们需要使用ARGPARSE解析器对象。先创建一个ARGPARSE解析器对象,以便在后续的操作中使用。相信你已经安装好了ARGPARSE模块,接下来就可以建立…

    other 2023年6月26日
    00
  • 详解使用Spring Boot开发Restful程序

    详解使用Spring Boot开发Restful程序攻略 简介 本攻略将详细介绍如何使用Spring Boot框架来开发Restful程序。Spring Boot是一个用于简化Spring应用程序开发的框架,它提供了自动配置和约定优于配置的原则,使得开发者可以更加专注于业务逻辑的实现。 步骤 步骤一:创建Spring Boot项目 首先,我们需要创建一个新的…

    other 2023年7月27日
    00
  • 轻松掌握Linux关机重启命令

    下面是轻松掌握Linux关机重启命令的攻略: 1. 关闭Linux系统 在命令行中使用shutdown命令可以用来关闭Linux系统,命令的格式如下: sudo shutdown [option] time 其中,option指定了shutdown的选项,time指定了关机时间。 1.1. 关机选项 -r,重启系统 -h,关机 -c,取消上一次的shutdo…

    other 2023年6月27日
    00
  • linux crash工具安装配置

    Linux Crash工具安装配置 什么是Linux Crash工具? Linux Crash工具是用于收集系统崩溃信息的工具。当系统崩溃时,该工具可以从系统的内存中获取关键信息,包括各个进程的状态、内核状态等,帮助我们定位和排除崩溃问题。 安装Crash工具 在大多数Linux系统中,Crash工具已经预先安装了。如果您的系统没有自带Crash工具,您可以…

    其他 2023年3月28日
    00
  • centos定时任务的查看与配置

    以下是关于“CentOS定时任务的查看与配置”的完整攻略,包含两个示例。 背景 在CentOS中,我们可以使用定时任务来定期执行些任务,例如备份数据清理日志等。在使用定时任务之前,我们需要了解如何查看和配置定时任务。 查看定时任务 在Cent中,我们可以使用crab命令来查看和编辑定时任务。具体步骤如下: 打开终端,输入以下命令查当前用户的定时任务: bas…

    other 2023年5月9日
    00
  • 基于HTML5上使用iScroll实现下拉刷新,上拉加载更多

    以下是“基于HTML5上使用iScroll实现下拉刷新,上拉加载更多”的完整攻略: 1. 安装 iScroll 首先,我们需要在 HTML 中引入 iScroll 脚本文件。可以通过以下方式引入: <script type="text/javascript" src="iscroll.js"></sc…

    other 2023年6月25日
    00
  • CentOS 6.3 Rsync客户端与Win2003 cwRsyncServer服务端实现数据同步

    下面我将详细讲解“CentOS 6.3 Rsync客户端与Win2003 cwRsyncServer服务端实现数据同步”的完整攻略,具体步骤如下: 确认准备工作 首先要确认准备工作是否齐备,以下是需要准备的内容: CentOS 6.3系统及cwRsync客户端 Win2003系统及cwRsyncServer服务端 确认两台机器之间网络通畅 在Win2003上…

    other 2023年6月27日
    00
  • Java虚拟机内存分配与回收策略问题精细解读

    Java虚拟机内存分配与回收策略问题精细解读 Java虚拟机(JVM)内存分配与回收策略是Java程序性能优化的重要方面。本攻略将详细讲解Java虚拟机内存分配与回收策略的相关知识,并提供两个示例来说明。 1. 内存分配策略 Java虚拟机的内存分配主要涉及堆内存和栈内存。 1.1 堆内存分配 堆内存是Java程序中对象实例的存储区域。Java虚拟机通过垃圾…

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