温馨提示×

python3 linux如何进行网络编程

小樊
86
2024-11-28 01:16:27
栏目: 编程语言

在Python 3中,进行网络编程主要涉及到socket编程

  1. 导入socket模块:
import socket
  1. 创建一个socket对象:
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)

这里,socket.AF_INET表示使用IPv4地址族,socket.SOCK_STREAM表示使用TCP协议。你也可以根据需要选择其他地址族和协议。

  1. 绑定IP地址和端口号:
server_ip = '127.0.0.1'
server_port = 12345
sock.bind((server_ip, server_port))
  1. 开始监听连接:
sock.listen(5)

这里,5表示最大挂起连接数。可以根据需要调整这个值。

  1. 接受客户端连接:
client_socket, client_address = sock.accept()

这将返回一个新的socket对象(client_socket)和客户端的IP地址和端口号(client_address)。

  1. 与客户端进行通信:
# 向客户端发送数据
message = 'Hello from server!'
client_socket.send(message.encode('utf-8'))

# 从客户端接收数据
data = client_socket.recv(1024)
print('Received from client:', data.decode('utf-8'))
  1. 关闭socket连接:
client_socket.close()
sock.close()

将以上代码整合到一个完整的示例中:

import socket

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

# 绑定IP地址和端口号
server_ip = '127.0.0.1'
server_port = 12345
sock.bind((server_ip, server_port))

# 开始监听连接
sock.listen(5)

print('Server is listening...')

# 接受客户端连接
client_socket, client_address = sock.accept()
print(f'Connected to client {client_address}')

# 向客户端发送数据
message = 'Hello from server!'
client_socket.send(message.encode('utf-8'))

# 从客户端接收数据
data = client_socket.recv(1024)
print('Received from client:', data.decode('utf-8'))

# 关闭socket连接
client_socket.close()
sock.close()

运行此服务器代码后,可以使用客户端(如telnet、nc等)连接到服务器并进行通信。

0