在同一台计算机上测试客户端-服务器
testing client- server on the same computer
我正在尝试使用 python 在笔记本电脑上测试套接字通信。但是,我不确定为什么没有建立连接?我一直收到目标机器主动拒绝连接的错误。我正在尝试使用同一台计算机 运行 客户端和服务器部分。服务器 运行 正常,但客户端未连接。我想我的主机名有误 (127.0.0.1) 但不确定我应该使用什么?我还尝试将服务器主机名更改为 (0.0.0.0) 以及客户端要连接的主机名的 IPV4 地址,但这也不起作用。如有任何帮助,我们将不胜感激!
我的代码(服务器部分):
import socket
comms_socket =socket.socket()
comms_socket.bind(('127.0.0.1', 50000))
comms_socket.listen(10)
connection, address = comms_socket.accept()
while True:
print(connection.recv(4096).decode("UTF-8"))
send_data = input("Reply: ")
connection.send(bytes(send_data, "UTF-8"))
客户端部分:
import socket
comms_socket = socket.socket()
comms_socket.connect(('127.0.0.1',50000))
while True:
send_data = input("Message: ")
comms_socket.send(bytes(send_data, "UTF-8"))
print(comms_socket.recv(4096).decode("UTF-8"))
您的代码将无法与 python 2.* 一起使用,因为 [=26] 中 input()
、raw_input()
、bytes
等的差异=] 3.* 对比 python 2.*。您必须至少进行以下更改才能使其与 python 2.* 一起使用。否则,使用 python 3 到 运行 您的代码:
服务器程序:
import socket
comms_socket =socket.socket()
comms_socket.bind(('127.0.0.1', 7000))
comms_socket.listen(10)
connection, address = comms_socket.accept()
while True:
print(connection.recv(4096).decode("UTF-8"))
send_data = raw_input("Reply: ") # Use raw_input() instead of input()
connection.send(send_data.encode("UTF-8"))
客户端程序:
import socket
comms_socket = socket.socket()
comms_socket.connect(('127.0.0.1',7000))
while True:
send_data = raw_input("Message: ")
comms_socket.send(send_data.encode("UTF-8"))
print(comms_socket.recv(4096).decode("UTF-8"))
如果您想在特定用例中按预期使用 bytes
,则应在 python 2.6 或更高版本中使用 bytesarray
。检查这个:the bytes type in python 2.7 and PEP-358
我正在尝试使用 python 在笔记本电脑上测试套接字通信。但是,我不确定为什么没有建立连接?我一直收到目标机器主动拒绝连接的错误。我正在尝试使用同一台计算机 运行 客户端和服务器部分。服务器 运行 正常,但客户端未连接。我想我的主机名有误 (127.0.0.1) 但不确定我应该使用什么?我还尝试将服务器主机名更改为 (0.0.0.0) 以及客户端要连接的主机名的 IPV4 地址,但这也不起作用。如有任何帮助,我们将不胜感激!
我的代码(服务器部分):
import socket
comms_socket =socket.socket()
comms_socket.bind(('127.0.0.1', 50000))
comms_socket.listen(10)
connection, address = comms_socket.accept()
while True:
print(connection.recv(4096).decode("UTF-8"))
send_data = input("Reply: ")
connection.send(bytes(send_data, "UTF-8"))
客户端部分:
import socket
comms_socket = socket.socket()
comms_socket.connect(('127.0.0.1',50000))
while True:
send_data = input("Message: ")
comms_socket.send(bytes(send_data, "UTF-8"))
print(comms_socket.recv(4096).decode("UTF-8"))
您的代码将无法与 python 2.* 一起使用,因为 [=26] 中 input()
、raw_input()
、bytes
等的差异=] 3.* 对比 python 2.*。您必须至少进行以下更改才能使其与 python 2.* 一起使用。否则,使用 python 3 到 运行 您的代码:
服务器程序:
import socket
comms_socket =socket.socket()
comms_socket.bind(('127.0.0.1', 7000))
comms_socket.listen(10)
connection, address = comms_socket.accept()
while True:
print(connection.recv(4096).decode("UTF-8"))
send_data = raw_input("Reply: ") # Use raw_input() instead of input()
connection.send(send_data.encode("UTF-8"))
客户端程序:
import socket
comms_socket = socket.socket()
comms_socket.connect(('127.0.0.1',7000))
while True:
send_data = raw_input("Message: ")
comms_socket.send(send_data.encode("UTF-8"))
print(comms_socket.recv(4096).decode("UTF-8"))
如果您想在特定用例中按预期使用 bytes
,则应在 python 2.6 或更高版本中使用 bytesarray
。检查这个:the bytes type in python 2.7 and PEP-358