socket.error: [errno 99] nie może przypisać żądanego adresu i przestrzeni nazw w Pythonie
Moje oprogramowanie serwera mówierrno99: cannot assign requested address
podczas używania adresu IP innego niż127.0.0.1
do wiązania.
Ale jeśli adres IP jest127.0.0.1
to działa. Czy jest to związane z przestrzeniami nazw?
Wykonuję kody serwera i klienta w innym programie Pythona, dzwoniącexecfile()
. W rzeczywistości edytuję kod źródłowy mininet. Zmodyfikowałem net.py i wewnątrz użyłem execfile ('server.py') execfile ('client1.py') i execfile ('client2.py'). sudo mn --topo single, 3 ”jest wywoływany wraz z utworzeniem 3 hostów, mój kod serwera i klienta zostanie wykonany. Podałem swój kod serwera i klienta poniżej.
#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()