错误如下图: (但此url和端口使用Xftp可以正常连接和传输文件) 更改为其他端口号仍然报一样的错误。 - 若修改rul为172.31.104.103,服务器虽然不会报错可以正常打开,但是客户端访问的时候,会 TimeoutError:[WinError 10060] 由于连接方在一段时间后没有正确答复或连接的主机没有反应,连接尝试失败。 且cmd ping172.31.104.103请求超时。
服务端部分代码如下:
from xmlrpc.server import SimpleXMLRPCServer
from socketserver import ThreadingMixIn
class ThreadXMLRPCServer(ThreadingMixIn, SimpleXMLRPCServer):
pass
def get_k(key):
"""根据key查找读取数据"""
# ...
if __name__ == '__main__':
server3 = ThreadXMLRPCServer(('47.111.91.28', 8888))
server3.register_function(get_k, "get")
print("Server3 is Listening for Client...")
server3.serve_forever()
客户端部分代码如下:
from xmlrpc.client import ServerProxy
server3 = ServerProxy("http://47.111.91.28:8888")
...
server3.get(key)
tcpOrder_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) #强制允许端口复用 tcpOrder_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR,1) locall_addr = ("", 7890)
tcpOrder_socket.bind(locall_addr) #print(tcpOrder_socket) tcpOrder_socket.connect((server_ip, int(server_port))) 在最后一行程序 与服务器连接时偶尔会出现 OSError: [Errno 99] Cannot assign requested address 的错误,目前还不知道是什么原因导致如此,以下介绍两种解决办法去避免这种错误:
方法一:命令行下运行 vim /etc/hosts
将127.0.1.1 那一行的名字改成你的(用 vi /etc/hostname 获取)
127.0.0.1 localhost
127.0.1.1 your hostname #此处的填hostname,记住必须与/etc/hostname中的名字一致!
以上更改后退出vim 保存更改 如果提示文件为只读状态导致无法更改 那就先去获取超级管理员权限(sudo -s 输入自己的密码进入),然后再去进行以上操作即可
这种方法可以有效的防止OSError: [Errno 99] Cannot assign requested address错误的发生
方法二:睁一只眼闭一只眼
while True: try:# 抓取OSError: [Errno 99] Cannot assign requested address 异常 tcpOrder_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) #强制允许端口复用 tcpOrder_socket.setsockopt(socket.SOL_SOCKET, socket.SO_REUSEADDR,1) locall_addr = ("", 7890) # 绑定本地信息 tcpOrder_socket.bind(locall_addr) #print(tcpOrder_socket) tcpOrder_socket.connect((server_ip, int(server_port))) choice_num = input("请输入操作代码:") except Exception as link_fault: continue 使用异常捕获,既然是偶尔出现的错误,那就让程序多执行几次,就能顺利通过,但是如果是一直出现这种错误,不建议用这种方法,因为你会一直卡在这里出不去,进入死循环
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。