Python套接字仅接受本地连接。
|
服务器:
import socket
host = \"\"
port = 4242
backlog = 5
size = 1024
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.bind((host,port))
s.listen(backlog)
client, address = s.accept()
while 1:
data = client.recv(size)
if data:
client.send(data)
print(data.decode(\"utf-8\"))
客户:
import socket
import sys
host = sys.argv[1]
port = 4242
size = 1024
s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
s.connect((host,port))
while True:
line = input(\"What to say: \")
s.send(line.encode(\"utf-8\"))
好吧,我在这里有点困惑。我开始学习套接字,因此我从一个简单的回显服务器开始。当服务器在Arch Linux或Ubuntu上运行时,我上面发布的代码可以很好地工作。但是,在Windows 7上时,它仅接受本地连接。问题是,我没有运行防火墙。我不确定Python是否具有单独的WinSock实现或其他实现,但是我很困惑!请,如果您愿意,我很清楚这是经过精心设计的(仅在客户端上接受!),但是我只是想知道为什么Windows不接受远程连接。
如果有帮助,在Arch和Ubuntu上,我运行的是Python 3.1,而在Win 7上运行的是3.2。
没有找到相关结果
已邀请:
2 个回复
镶骄册筷
默认绑定到Win 7下的本地主机(127.0.0.1)(目前我无法访问Win 7计算机)。 为了使您的服务器在主机上的所有(IPv4)接口上都可访问,这应该在Linux,Windows,Mac等操作系统上起作用:
要验证套接字绑定到哪个地址,可以执行以下操作:
甲车劲