私はPythonを使用して小さなLANチャットを作成していますが、何らかの理由で接続が拒否され続けています。ここでPython - 接続が拒否され続ける
File "client.py", line 35, in data, addr = s.recvfrom(1024) ConnectionRefusedError: [Errno 111] Connection refused
はserver.pyコードは次のとおりです:
import socket
from time import sleep
host = '127.0.0.1'
port = 5000
ips = []
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.bind((host, port))
print('server started')
quitS = False
while not quitS:
data, addr = s.recvfrom(1024)
if 'quitS' in str(data):
print('server will close in...')
for i in reversed(range(4)):
sleep(1)
print (i)
quitS = True
break
print (str(addr) + ': '+str(data))
if addr not in ips:
ips.append(addr)
for ip in ips:
s.sendto(data, ip)
s.close()
そして、私のclient.py:ここでエラーがある
import socket
from time import sleep
from getpass import getpass
host = '192.168.1.126'
port = 5000
s = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
s.connect((host, port))
loop = True
while loop:
try:
s.settimeout(4)
text = input('Type: ')
data = text.encode('UTF-8')
if text == 'quitS':
passwd = False
pcount = 0
while not passwd:
pcount += 1
pwd = getpass()
if pwd == '1234':
s.send(data)
passwd = True
elif pcount == 3:
print ('HHell no, go away')
break
elif text == 'q':
s.close()
break
elif text == '':
print('Inavalid, entry not allowed.')
else:
s.send(data)
data, addr = s.recvfrom(1024)
print (str(addr) + ': ' + str(data))
except (socket.timeout, ConnectionResetError):
loop = False
sleep(2)
print('Server is dead, will close in...')
for i in reversed(range(4)):
sleep(1)
print (i)
server.pyが私のRPI上で実行されていて、彼は私のufwステータス冗長出力です:
5000 ALLOW IN Anywhere
6001 ALLOW IN Anywhere
5001 ALLOW IN Anywhere
22 ALLOW IN Anywhere
5900 ALLOW IN Anywhere
5800 ALLOW IN Anywhere
5000 ALLOW IN Anywhere (v6)
6001 ALLOW IN Anywhere (v6)
5001 ALLOW IN Anywhere (v6)
22 ALLOW IN Anywhere (v6)
5900 ALLOW IN Anywhere (v6)
5800 ALLOW IN Anywhere (v6)
5000 ALLOW OUT Anywhere
5000 ALLOW OUT Anywhere (v6)
client.py ufwの設定はほとんど同じですが、ポート5000の出入りを許可しています。
私は間違っていますか?また、コードの提案があれば教えてください!
@DeepSpaceのように、ここではホストとクライアントのIPが重要です。同じマシンから接続/テストしていない場合は、localhostにバインドしないでください。 – Peri461
127.0.0.1がオンになっているときは、彼自身からの接続のみを受け付けますか? @DeepSpace – DiogoF
@DiogoFはい、私の答えと私がリンクしている質問を見てください。 – DeepSpace