【发布时间】:2021-04-18 06:42:15
【问题描述】:
我一直在尝试学习套接字编程,我的目标是从客户端向服务器发送请求,尽管有客户端的请求,也从服务器向客户端发回响应。 在代码中,我试图发送 \x02\x03\x35\x36\x37\x01\x00\05\x02\x75 和 \x02\x05\x01\x35\x36\x01\x01\05\x02\x76数据,但在我的输出中我看到 \x02\x03567\x01\x00\x05\x02u 和 \x02\x05\x0156\x01\x01\x05\x02v 而不是它们。难道我做错了什么? 这是我的代码:
server.py
import socket
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((socket.gethostname(), 1236))
s.listen(5)
print("Waiting for connection...")
server_message = b"\x02\x05\x01\x35\x36\x01\x01\05\x02\x76"
while True:
clientsocket, addr = s.accept()
print(f"Successfully connected with client from {addr}", addr)
client_message = clientsocket.recv(1024) # Get request from the client.
print("Request from the Client:", client_message)
if client_message.__eq__(b"\x02\x03\x35\x36\x37\x01\x00\05\x02\x75"): # If request is appropriate for response then;
clientsocket.send(server_message) # Send response to the client.
print("Response to the Client:", server_message)
clientsocket.close()
client.py
import socket
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((socket.gethostname(), 1236))
client_message = b"\x02\x03\x35\x36\x37\x01\x00\05\x02\x75"
try:
s.send(client_message) # Send request to the server.
server_message = s.recv(1024) # Get response from the server.
print("Request to the Server:", client_message)
print("Response from the Server:", server_message)
s.close()
except socket.error as error_message:
print("Server is not working", error_message)
【问题讨论】: