在Python 3中,進行網絡編程主要涉及到socket編程
import socket
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
這里,socket.AF_INET
表示使用IPv4地址族,socket.SOCK_STREAM
表示使用TCP協議。你也可以根據需要選擇其他地址族和協議。
server_ip = '127.0.0.1'
server_port = 12345
sock.bind((server_ip, server_port))
sock.listen(5)
這里,5
表示最大掛起連接數。可以根據需要調整這個值。
client_socket, client_address = sock.accept()
這將返回一個新的socket對象(client_socket
)和客戶端的IP地址和端口號(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'))
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等)連接到服務器并進行通信。