socket.error:[errno 99]无法在python中分配请求的地址和命名空间
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了socket.error:[errno 99]无法在python中分配请求的地址和命名空间,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2333字,纯文字阅读大概需要4分钟。
内容图文
我的服务器软件说errno99:使用127.0.0.1以外的IP地址进行绑定时,无法分配请求的地址.
但如果IP地址是127.0.0.1,它可以工作.
它与命名空间有关吗?
我通过调用execfile()在另一个python程序中执行我的服务器和客户端代码.
我实际上正在编辑mininet源代码.我编辑了net.py,在其中我使用了execfile(‘server.py’)execfile(‘client1.py’)和execfile(‘client2.py’).所以一旦“ sudo mn –topo single,3“被调用以及3个主机的创建我的服务器和客户端代码将被执行.我已经给出了我的服务器和客户端代码.
#server code
import select
import socket
import sys
backlog = 5
size = 1024
server = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
server.bind(("10.0.0.1",9999))
server.listen(backlog)
input = [server]
running = 1
while running:
inputready,outputready,exceptready = select.select(input,[],[])
for s in inputready:
if s == server:
client, address = server.accept()
input.append(client)
else:
l = s.recv(1024)
sys.stdout.write(l)
server.close()
#client code
import socket
import select
import sys
import time
while(1) :
s,addr=server1.accept()
data=int(s.recv(4))
s = socket.socket()
s.connect(("10.0.0.1",9999))
while (1):
f=open ("hello1.txt", "rb")
l = f.read(1024)
s.send(l)
l = f.read(1024)
time.sleep(5)
s.close()
解决方法:
将事情简化为基础知识这是您想要测试的内容:
import socket
server = socket.socket()
server.bind(("10.0.0.1", 6677))
server.listen(4)
client_socket, client_address = server.accept()
print(client_address, "has connected")
while 1==1:
recvieved_data = client_socket.recv(1024)
print(recvieved_data)
这可以假设一些事情:
>您的本地IP地址(在服务器上)是10.0.0.1(This video shows you how)
>没有其他软件在端口6677上侦听
还要注意IP地址的基本概念:
尝试以下操作,打开开始菜单,在“搜索”字段中键入cmd并按Enter键.
打开黑色控制台后,键入ping www.google.com,这应该为您提供谷歌的IP地址.这个地址是googles本地IP,它们绑定到那个,显然你不能绑定到谷歌拥有的IP地址.
考虑到这一点,您拥有自己的IP地址集.
首先你拥有服务器的本地IP,但是你拥有你家的本地IP.
在下图中,192.168.1.50是您可以绑定到的服务器的本地IP.
您仍然拥有83.55.102.40,但问题是它由路由器拥有,而不是您的服务器.因此,即使你访问http://whatsmyip.com并告诉你你的IP是83.55.102.40但事实并非如此,因为它只能看到你来自哪里……而你正在从路由器访问你的互联网.
为了让您的朋友访问您的服务器(绑定到192.168.1.50),您需要将端口6677转发到192.168.1.50,这在您的路由器中完成.
假设你落后于其中一个.
如果你在学校,最有可能出现其他困境和路由器.
内容总结
以上是互联网集市为您收集整理的socket.error:[errno 99]无法在python中分配请求的地址和命名空间全部内容,希望文章能够帮你解决socket.error:[errno 99]无法在python中分配请求的地址和命名空间所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。