В моем серверном программном обеспечении errno99: cannot assign requested address
используется ip-адрес, отличный от 127.0.0.1
для привязки.
Но если IP-адрес 127.0.0.1
, он работает.
Связано ли это с пространствами имен?
Я выполняю код своего сервера и клиента в другой программе python, вызывая execfile()
.
Я фактически редактирую исходный код mininet.I отредактировал 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()