套接字消息程序不能与多个设备一起使用

时间:2018-02-19 16:35:53

标签: python python-2.7 sockets

我使用套接字库创建了一个程序,允许我启动服务器从连接的客户端收集消息,我还创建了一个可以连接到服务器并发送消息的客户端。 当在同一设备上测试时,这些程序彼此通信,但是当我尝试在两个不同设备之间进行通信时,我会遇到各种错误。 我主要得到错误,说连接被拒绝,或者它超时,或者IP在这种情况下不适用。 我一直在寻找解决方案,但没有一个正常,请帮助。

服务器代码:

from datetime import datetime
import socket

print("STARTING_SERVER_SETUP_AT: " + str(datetime.now()))

ip = raw_input("SERVER_IP: ")
port = int(raw_input("SERVER_PORT: "))

address = (ip, port)
max_size = 1000

print("STARTING_THE_SERVER_AT: " + str(datetime.now()))

server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server.bind(address)
server.listen(5)
client, addr = server.accept()

while(True):
    data = client.recv(max_size)
    print(str(datetime.now()) + ": " + str(data))
    client.sendall(bytes("MESSAGE_RECEIVED"))

客户代码:

from datetime import datetime
import socket

print("STARTING_CLIENT_SETUP_AT: " + str(datetime.now()))

ip = raw_input("SERVER_IP: ")
port = int(raw_input("SERVER_PORT: "))
username = raw_input("CLIENT_USERNAME: ") + ": "

address = (ip, port)
max_size = 1000

print("STARTING_CLIENT_AT: " + str(datetime.now()))

client = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
client.connect(address)

while(True):
    client.sendall(bytes(username + raw_input()))

欲了解更多信息: 这是用Python2.7编写的 我已经尝试了IP的每一个单一组合来实现这个目标 工作的东西(0.0.0.0,127.0.x.x,192.168.x.x,localhost) 我也无法向前移动。

0 个答案:

没有答案