首先,我们需要了解什么是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技术站