基于TCP协议的socket通信过程

2023-12-14 00:41:15

简要步骤

使用socket实现通信的过程通常包括以下步骤:

  • 创建Socket对象:在服务器端,使用socket.socket()函数创建一个Socket对象;在客户端,使用socket.socket()函数创建一个Socket对象。
  • 绑定地址和端口:在服务器端,使用bind()方法将Socket对象绑定到一个IP地址和端口上;在客户端,不需要绑定地址和端口。
  • 监听连接请求:在服务器端,使用listen()方法开始监听连接请求。
  • 接受连接请求:在服务器端,使用accept()方法接受客户端的连接请求,返回一个新的Socket对象和客户端的地址;在客户端,不需要接受连接请求。
  • 发送和接收数据:使用send()方法发送数据,使用recv()方法接收数据。可以使用循环来多次发送和接收数据。
  • 关闭连接:使用close()方法关闭Socket连接。

客户端

import socket

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

# 连接服务器
server_address = ('localhost', 8888)
client_socket.connect(server_address)

# 发送数据
message = 'Hello, server!'
client_socket.send(message.encode())

# 接收数据
data = client_socket.recv(1024)
print('接收到的数据:', data.decode())

# 关闭连接
client_socket.close()

服务器端

import socket

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

# 绑定地址和端口
server_address = ('localhost', 8888)
server_socket.bind(server_address)

# 监听连接请求
server_socket.listen(1)

print('等待客户端连接...')

# 接受连接请求
client_socket, client_address = server_socket.accept()
print('客户端已连接:', client_address)

# 接收数据
data = client_socket.recv(1024)
print('接收到的数据:', data.decode())

# 发送数据
message = 'Hello, client!'
client_socket.send(message.encode())

# 关闭连接
client_socket.close()
server_socket.close()

文章来源:https://blog.csdn.net/weixin_45880844/article/details/134829655
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。