我的python套接字程序给我OSError



列表项

当我在套接字程序中编写线程时,它告诉我传输端点未连接,这对我来说很奇怪

这是我的代码:

服务器端:

from ast import arg
from audioop import add
import socket
import threading
soc_server = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
soc_port = 5053
soc_server.bind(('127.0.0.1',soc_port))
def sendfunc(soc_client , list = []):
if soc_server.recv(1024):
text = soc_server.recv(1024)
list += text.decode('utf-8')
print(text.decode('utf-8'))
soc_client.sendall(text.encode('utf-8'))
else:
soc_client.sendall(f'hello from server')

soc_server.listen(5)
for i in range(5):
soc_client , addr = soc_server.accept()
print('connected to : ' + addr[0])
# thread1 = threading.Thread(target=recvfunnc, daemon=False , args = (soc_client))
# thread1.start()
# text = soc_server.recv(1024)
thread  = threading.Thread(target=sendfunc, daemon=False,args=(soc_client , list))
thread.start()

客户端:

import socket
soc_client = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
soc_port  = 5053
soc_client.connect(('127.0.0.1',soc_port))
a = soc_client.recv(1024)
print(a.decode('utf-8'))
soc_client.sendall(b'hellp')
soc_client.close()

if soc_server.recv(1024):
text = soc_server.recv(1024)

无法从服务器套接字读取。这应该是soc_client,而不是soc_server。除此之外,代码可能不符合您的预期—它将首先从套接字读取1024字节,并丢弃结果。然后,它将再读取一个,最大1024字节到text

相关内容

最新更新