我不知道如何将线程放到我的套接字程序中。我需要你的帮助。我做了简单的套接字脚本,但后来我卡住了。代码如下:
import socket,pickle,time,sys
import threading
def receive():
addr = (host,port)
ss = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
ss.bind(addr)
ss.listen(5)
print('Server is listening')
clsocket, claddr = ss.accept()
while 1:
data = clsocket.recv(1024)
if not data:
break
else:
data = pickle.loads(data) # Or json.loads(data)
print("receive data: ", data)
clsocket.send(mdata)
clsocket.close()
ss.close()
def send():
addr = (host,port)
ss = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
clientsocket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
clientsocket.connect(addr)
clientsocket.send(mdata)
print('sended data: ',pickle.loads(mdata))
data = clientsocket.recv(buf)
data = pickle.loads(data)
print("prijate data: ",data)
ss.close()
host = 'localhost'
port=1234
buf = 1024
mdata = ['dns','dhcp','firewall']
mdata = pickle.dumps(mdata)
receive()
time.sleep(1)
send()
我想制作点对点脚本。此脚本将由三台或更多计算机使用。这台计算机应该随时交换数据,因此它们应该随时准备好。重点是,receive()函数将始终运行,类似于后台线程。其他线程应处理收到的数据。然后应该再次运行receive()线程,或继续。我知道需要中断和多任务处理。我是python中的新手,也是线程。我读过很少的文件,但我发现没有任何问题,包括我的问题。我使用的是Python 3.3.3。
有什么建议吗?还是提示?
最好的问候
的Jozef