所以我为自己建立了一个小型服务器应用程序来增强我的简历,但我有一个我无法弄清楚的问题
据我所知,我的服务器运行正常,因为我(仅在我自己的计算机上)可以连接到服务器。
一旦我试图让任何其他计算机连接到它,它就永远不会连接,我不知所措,需要创意。
我使用谷歌浏览器进行连接,就像我之前说的那样,它工作得很好,但只能在我的电脑上使用
import sys
import socket
serversocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
print('Socket created.')
host, port = socket.gethostname(), 30001
try:
serversocket.bind((host, port))
except socket.error as msg:
print('Binding failed, Error: ' + str(msg[0]) + '\nMessage: ' + msg[1])
sys.exit()
print('Binding complete.')
print('Host name:\t ' + str(host) + '\nIP:\t\t ' + str(socket.gethostbyname(host)) + '\nPort: \t\t ' + str(port))
serversocket.listen(5)
print('Socket Listening...')
while True:
socketConnection, addr = serversocket.accept()
print('Connection established.')
dataRecieved = socketConnection.recv(2048)
print(dataRecieved)
socketConnection.send("Sup Doooood")
答案 0 :(得分:1)
套接字绑定到localhost,因为您指定了host = socket.gethostname()
,并且您的主机名已解析为localhost。您必须将套接字绑定到host = "0.0.0.0"
才能使其可以从任何外部主机访问。
更改此行:
host, port = socket.gethostname(), 30001
为:
host, port = "0.0.0.0", 30001