首页 / PYTHON / Python套接字只接受本地连接
Python套接字只接受本地连接
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了Python套接字只接受本地连接,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含1219字,纯文字阅读大概需要2分钟。
内容图文
![Python套接字只接受本地连接](/upload/InfoBanner/zyjiaocheng/807/09db7ac60c8f484a9d770bb8baf8d585.jpg)
服务器:
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"))
好吧,我在这里有点困惑.我开始学习套接字了,所以我开始使用一个简单的echo服务器.当服务器在Arch Linux或Ubuntu上运行时,我上面发布的代码可以很好地工作.但是,当它在Windows 7上时,它只接受本地连接.问题是,我没有运行防火墙.我不确定Python是否有单独的WinSock实现或什么,但我很困惑!如果你愿意的话,我非常清楚这是非常设计的(只接受客户端!),但我只是想知道为什么Windows不接受远程连接.
如果它有帮助,在Arch和Ubuntu上,我正在运行Python 3.1,而在Win 7上它运行在3.2.
解决方法:
听起来像host =”是默认绑定到Win 7下的localhost(127.0.0.1)(目前我无法访问Win 7机器).
要使服务器在主机上的所有(IPv4)接口上都可访问,这应该适用于Linux,Windows,Mac等:
host = '0.0.0.0'
s.bind((host, 8080))
要验证套接字绑定到哪个地址,可以执行以下操作:
>>> s.getsockname()
('0.0.0.0', 8080)
内容总结
以上是互联网集市为您收集整理的Python套接字只接受本地连接全部内容,希望文章能够帮你解决Python套接字只接受本地连接所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。