欢迎访问宙启技术站
智能推送

使用Python实现简单的TCP服务器和客户端

发布时间:2023-12-04 07:39:54

TCP(传输控制协议)是一种面向连接的协议,可用于在网络上可靠地传输数据。在Python中,我们可以使用socket模块来实现TCP服务器和客户端。

首先,我们将实现一个简单的TCP服务器。我们将创建一个socket对象,并将其绑定到服务器主机和端口。然后,我们可以调用listen函数开始监听传入的连接。一旦有连接进来,服务器将接受该连接,并从客户端接收数据,然后将其发送回客户端。

下面是一个简单的TCP服务器的示例代码:

import socket

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

# 绑定服务器主机和端口
server_host = '127.0.0.1'
server_port = 12345
server_socket.bind((server_host, server_port))

# 监听传入的连接
server_socket.listen(1)

print('服务器已启动,等待连接...')

while True:
  # 接受连接
  client_socket, client_address = server_socket.accept()
  print('连接已建立:', client_address)
  
  while True:
    # 从客户端接收数据
    data = client_socket.recv(1024)
    if not data:
      break
    
    # 将数据发送回客户端
    client_socket.send(data)
  
  # 关闭客户端连接
  client_socket.close()

接下来,我们将实现一个简单的TCP客户端。我们创建一个socket对象,并将其连接到服务器的主机和端口。然后,我们可以通过调用send函数发送数据到服务器,并通过调用recv函数接收从服务器返回的数据。

下面是一个简单的TCP客户端的示例代码:

import socket

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

# 连接服务器主机和端口
server_host = '127.0.0.1'
server_port = 12345
client_socket.connect((server_host, server_port))

while True:
  # 从用户输入中获取数据
  message = input('请输入要发送给服务器的消息(输入"exit"退出):')
  if message == 'exit':
    break
  
  # 发送数据到服务器
  client_socket.send(message.encode())
  
  # 从服务器接收数据
  data = client_socket.recv(1024)
  print('从服务器接收到的数据:', data.decode())

# 关闭客户端连接
client_socket.close()

要使用这些代码,您需要在本地运行服务器和客户端。在运行服务器之后,可以运行客户端,并通过输入消息与服务器进行交互。服务器将接收到消息并将其回传给客户端,然后客户端将打印收到的消息。

这只是一个简单的TCP服务器和客户端的实现示例,它们可以帮助您了解如何使用Python创建和使用TCP连接。在实际应用中,您可能需要处理更复杂的逻辑和错误处理,但这些示例可以为您提供一个起点。