Python 网络编程之TCP客户端/服务端功能示例【基于socket套接字】

Python 网络编程之TCP客户端/服务端功能示例【基于socket套接字】

1. TCP/IP协议简介

  • TCP: 面向连接的传输控制协议
  • IP: 网际协议,负责把数据从一个网络节点传送到另一个网络节点。

TCP/IP 协议是互联网的基础协议,是互联网最重要的基础设施之一。

2. Python中的 socket 套接字

Python 中的 socket 模块提供了对网络编程中常用的一些套接字操作的封装。

使用套接字进行网络编程的一般步骤

  • 创建 socket 套接字对象
  • 绑定 IP 地址和端口号(仅服务端需要)
  • 监听客户端连接请求(仅服务端需要)
  • 接收客户端请求并响应(仅服务端需要)
  • 连接服务端并发送数据(仅客户端需要)
  • 接收服务端发送的数据(仅客户端需要)

2.1 创建 socket对象

import socket

# TCP Client
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

# TCP Server
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

socket.AF_INET 使用 IPv4 进行通信,socket.SOCK_STREAM 指定使用 TCP 进行通信。

2.2 绑定服务端IP地址和端口号

# 绑定 IP 地址和端口号
server_socket.bind(('localhost', 8000))

2.3 监听客户端连接请求

# 开始监听
server_socket.listen()

# 接受客户端连接
conn, addr = server_socket.accept()

2.4 接收客户端请求并响应

# 接收客户端请求
data = conn.recv(1024)

# 响应客户端请求
conn.sendall(data)

2.5 连接服务端并发送数据

# 建立连接
client_socket.connect(('localhost', 8000))

# 发送数据
client_socket.sendall(b'Hello, world!')

# 接收数据
data = client_socket.recv(1024)

# 解码数据并打印
print(data.decode())

3. 示例:创建 TCP 客户端和服务端

3.1 创建 TCP 服务端

import socket

def tcp_server():
    # 创建 socket 对象
    server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

    # 绑定服务器地址和端口号
    server_socket.bind(('localhost', 8000))

    # 开始监听
    server_socket.listen()

    print('服务器已启动,等待客户端连接...')
    while True:
        # 接受客户端连接请求
        conn, addr = server_socket.accept()
        print('客户端已连接', addr)

        # 接收客户端请求并响应
        data = conn.recv(1024)
        conn.sendall(data)

        # 关闭连接
        conn.close()

if __name__ == '__main__':
    tcp_server()

3.2 创建 TCP 客户端

import socket

def tcp_client():
    # 创建 socket 对象
    client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

    # 建立连接
    client_socket.connect(('localhost', 8000))

    # 发送数据
    client_socket.sendall(b'Hello, world!')

    # 接收数据
    data = client_socket.recv(1024)

    # 解码数据并打印
    print(data.decode())

    # 关闭连接
    client_socket.close()

if __name__ == '__main__':
    tcp_client()

以上示例实现了一个基本的 TCP 服务端和客户端连接、发送和接收数据的功能,代码简洁,易于理解。可以用于开发网络数据传输、通信或者数据采集等任何应用场景。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python 网络编程之TCP客户端/服务端功能示例【基于socket套接字】 - Python技术站

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

相关文章

  • iphone手机内存存储容量不足怎么办?iPhone显示存储空间不足解决方法

    iPhone手机内存存储容量不足怎么办?iPhone显示存储空间不足解决方法 如果你的iPhone手机内存存储容量不足,以下是一些解决方法,可以帮助你释放存储空间并优化手机性能。 1. 删除不必要的文件和应用程序 首先,你可以删除一些不必要的文件和应用程序来释放存储空间。以下是一些示例: 照片和视频:在iPhone的相册中,你可以选择删除一些不需要的照片和视…

    other 2023年8月1日
    00
  • Python3.5面向对象与继承图文实例详解

    首先讲一下Markdown格式的文本应该具备的基础内容。 标题 Markdown的标题可以通过在文本前面添加 # 号来实现,# 号的数量表示标题的级别,一级标题一个 # 号,二级标题两个 # 号,以此类推,最多支持六级标题。 一级标题 二级标题 三级标题 四级标题 五级标题 六级标题 引用 Markdown的引用可以通过在文本前添加 > 号来实现。 这…

    other 2023年6月26日
    00
  • javascript入门之string对象【新手必看】

    接下来我将详细讲解“JavaScript入门之String对象【新手必看】”的完整攻略。 1. 什么是String对象 String对象是JavaScript中表示文本的类型。它是一组字符的有序序列,每个字符都有一个数字索引,这个索引从0开始,以字符串的长度减1结束。String对象有许多重要的属性和方法,可以让我们方便地处理文本数据。 2. 如何创建Str…

    other 2023年6月20日
    00
  • 修改公网IP和mac地址的建议方法分享

    修改公网IP和MAC地址的建议方法分享 1. 修改公网IP地址 要修改公网IP地址,您可以尝试以下方法: 方法一:联系您的互联网服务提供商(ISP) 联系您的ISP并告知他们您想要更改公网IP地址。他们可能会要求您提供一些身份验证信息以确保您是合法的用户。一旦验证完成,他们将为您分配一个新的公网IP地址。 方法二:使用虚拟专用网络(VPN) 使用VPN可以帮…

    other 2023年7月30日
    00
  • 斗鱼账号绑定手机号以后能解除绑定吗?

    当您在斗鱼上绑定您的手机号的时候,您需要通过验证码来进行验证,这是为了保证您的账号安全性。但一旦您的手机号码被绑定,想要解除绑定就需要了解一些操作步骤。 解除手机号绑定需要注意以下几点: 不能在解除绑定后24小时内重新绑定; 当前手机是否绑定了其他账号,如果是,则无法解除; 当前账号是否有被冻结或违反规定,若冻结或有违规行为,则无法解除; 解除绑定的手机号将…

    other 2023年6月27日
    00
  • 苹果iOS9.1 Beta1开发者预览版和公共测试版已知Bug和问题大全

    苹果iOS9.1 Beta1开发者预览版和公共测试版已知Bug和问题大全 简介 苹果iOS 9.1是苹果公司发布的最新操作系统之一。随着开发者预览版和公共测试版的发布,用户可以在第一时间获取新的功能和特性,但也需要注意其中已知的Bug和问题。这份攻略将详细讲解iOS 9.1 Beta1的已知Bug和问题,以便用户更加了解系统并避免使用过程中遇到困难。 已知B…

    other 2023年6月26日
    00
  • mac上安装openjdk11

    在mac上安装openjdk11 如果你需要在你的Mac上安装openjdk11,这篇文章将提供给你一些指导。 步骤一:检查当前JDK版本 在安装openjdk11之前,需要首先检查你当前的Java Development Kit(JDK)的版本。可以通过打开终端窗口(Terminal Window),然后在命令行输入以下命令: java -version …

    其他 2023年3月29日
    00
  • Shell脚本实现从文件夹中递归复制文件

    想要实现从一个文件夹中递归复制(包括文件夹和子文件夹中的文件)文件,可以通过编写Shell脚本来实现。具体的实现攻略如下: 1. 创建Shell脚本文件 在Linux环境中,右键点击文件夹空白处,选择“打开终端”,在终端中输入以下命令来创建一个新的Shell脚本文件: touch myscript.sh 其中,myscript.sh 是你新建的Shell脚本…

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