Python TCP通信客户端服务端代码实例

首先,我们需要了解什么是TCP通信。TCP(Transmission Control Protocol)是一种面向连接的、可靠的、基于字节流的传输层通信协议。它在互联网中被广泛使用,例如浏览网页、下载文件等。TCP通过三次握手建立连接,在数据传输过程中会保证数据的可靠传输,也能够保证数据的顺序正确。

在Python中,通过socket模块可以实现TCP通信。下面,我们来介绍如何编写Python TCP通信客户端服务端代码实例。

编写TCP服务器端代码

import socket

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

# 获取本地主机名和端口号
host = socket.gethostname()  # 获取本地主机名
port = 9001  # 设置端口号

# 绑定地址与端口号
server_socket.bind((host, port))

# 设置最大连接数
server_socket.listen(5)

# 等待客户端连接
while True:
    client_socket, addr = server_socket.accept()  # accept方法返回conn(客户端连接)和address(客户端地址)
    print('Connect from:', addr)
    message = 'Welcome to the TCP server!'
    # 发送消息
    client_socket.send(message.encode('utf-8'))
    # 关闭连接
    client_socket.close()

上面的代码创建了一个TCP服务器,并绑定到本地主机名和指定端口号。然后,服务器一直处于监听状态,接受客户端的连接请求,并向客户端发送欢迎消息。可以看出,代码中使用了套接字(socket)模块中的socket()bind()listen()accept(), send()close()等方法。

编写TCP客户端代码

import socket

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

# 获取本地主机名和端口号
host = socket.gethostname()  # 获取本地主机名
port = 9001  # 设置端口号

# 连接服务器
client_socket.connect((host, port))

# 接受服务器端发送的消息
message = client_socket.recv(1024).decode('utf-8')

# 输出接收到的消息
print(message)

# 关闭连接
client_socket.close()

上面的代码是一个TCP客户端,它首先创建一个socket对象,然后连接服务器,并接受服务器发送的消息。最后,客户端关闭连接。可以看出,代码中使用了套接字(socket)模块的socket()connect()recv()close()等方法。

示例说明:

下面,我们通过两个示例说明如何使用这两份代码进行简单的网络通信。

示例一:发送消息到服务器

在本地终端执行服务器端代码,使用Python运行:

python tcp_server.py

然后,在另一个终端执行客户端端代码,使用Python运行:

python tcp_client.py

可以看到,服务器输出了客户端的地址,而客户端接收到来自服务器的欢迎消息。这表明通信成功,也说明相关源码的正确性。

示例二:反向通信

如果你想要在示例一的基础上使服务器反向发送消息给客户端,可以对服务器端代码稍作修改:

import socket

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

# 获取本地主机名和端口号
host = socket.gethostname()  # 获取本地主机名
port = 9001  # 设置端口号

# 绑定地址与端口号
server_socket.bind((host, port))

# 设置最大连接数
server_socket.listen(5)

# 等待客户端连接
while True:
    client_socket, addr = server_socket.accept()  # accept方法返回conn(客户端连接)和address(客户端地址)
    print('Connect from:', addr)
    # 接收消息
    message = client_socket.recv(1024).decode('utf-8')
    print(message)
    # 发送消息
    message = 'Welcome to the TCP server!'
    client_socket.send(message.encode('utf-8'))
    # 关闭连接
    client_socket.close()

在这个示例中,服务器接收来自客户端的消息,并返回欢迎消息,完成了一次简单的反向通信。

这就是Python TCP通信客户端服务端代码实例的完整攻略。如果你想继续深入学习,可以了解更多有关套接字的知识,例如套接字类型、在Windows和Linux下的套接字编程等。

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:Python TCP通信客户端服务端代码实例 - Python技术站

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

相关文章

  • Python自动重新加载模块详解(autoreload module)

    Python自动重新加载模块详解(autoreload module) 在Python环境下,使用import语句导入模块是很常见的操作,但如果在开发中频繁地修改了导入的模块,就需要不断地重新导入。这对于大型项目或者复杂的模块来说,可能会很耗时。幸运的是,Python提供了一个模块autoreload,可以帮助我们自动重新加载模块。 安装autoreload…

    python 2023年5月19日
    00
  • python 录制系统声音的示例

    当我们想要录制电脑系统声音时,需要借助Python中第三方库sounddevice和soundfile。sounddevice用于捕获系统声音,soundfile则用于将捕获到的声音流写入文件保存。 下面是录制系统声音的完整攻略: 安装依赖库 使用pip安装sounddevice和soundfile库: pip install sounddevice pip…

    python 2023年5月23日
    00
  • python处理document文档保留原样式

    Python是一种功能强大的编程语言,它可以用来处理各种各样的数据,其中包括文档文件。如果您需要处理document文档并且保留原样式,那么您可以使用Python中的“python-docx”库。 步骤一:安装python-docx库 您需要首先安装“python-docx”库才能使用它。在命令行中输入以下命令即可安装库: pip install pytho…

    python 2023年5月18日
    00
  • python多线程案例之多任务copy文件完整实例

    下面我来详细介绍一下“Python多线程案例之多任务copy文件完整实例”的攻略。 1. 确定需求 在实现多线程copy文件之前,我们需要先明确需求和目标,也就是要实现什么功能,怎样实现。在本案例中,需求的核心是:使用多线程实现同时从一个目录中复制多个文件到另外一个目录中。 2. 实现思路 在明确需求之后,我们需要考虑实现的思路。在本案例中,可以通过以下几个…

    python 2023年5月18日
    00
  • 详解Python Socket网络编程

    详解Python Socket网络编程 什么是Socket Socket是网络编程中的一个概念,它指的是一组用于网络通信的API。我们可以用Socket在网络上发送数据和接收数据。 在Python中,我们可以使用socket模块来创建和操作Socket。socket模块提供了一个类来表示一个网络套接字socket对象。 Socket的工作原理 Socket通…

    python 2023年6月3日
    00
  • Python常用算法学习基础教程

    Python常用算法学习基础教程 本攻略将介绍Python常用算法的基础知识,包括排序算法、查找算法、递归算法等。我们将使用示例代码来演示这些算法的实现过程。 排序算法 冒泡排序 冒泡排序是一种简单的算法,它的基本思想是通过相邻元素之间的比较和交换来把小的元素逐步“冒泡”到数组的顶端。以下是示例代码,演示如何实现冒泡排序: def bubble_sort(a…

    python 2023年5月13日
    00
  • 通过Python将MP4视频转换为GIF动画

    下面我就来详细讲解一下通过Python将MP4视频转换为GIF动画的完整攻略。 步骤一:安装必要的库 要使用Python将MP4视频转换为GIF动画,我们需要使用到一些第三方库。其中最主要的是imageio和moviepy库。在使用之前,我们要先确保这两个库已经安装成功。 可以使用pip来安装这两个库。在终端中输入以下命令: pip install imag…

    python 2023年6月13日
    00
  • 详解python的sorted函数对字典按key排序和按value排序

    下面是对“详解python的sorted函数对字典按key排序和按value排序”的完整攻略,主要分为以下几个部分: sorted函数的介绍 对字典按key排序 对字典按value排序 示范代码演示 1. sorted函数的介绍 sorted函数是Python内置的排序函数,它可以对序列、集合和字典等可迭代类型进行排序。sorted函数默认按照升序排序,如果…

    python 2023年5月13日
    00
合作推广
合作推广
分享本页
返回顶部