我不知道如何将线程放入套接字程序。我需要你的帮助。我做了一个简单的socket脚本,但后来我被卡住了。代码如下:
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()函数将始终运行,类似于backround thread。其他线程应该处理接收到的数据。然后应该再次运行receive()线程,或者继续。我知道有必要的干扰和多任务处理。我是python的新手,线程也是。我读了一些文件,但什么也没发现,包括我的问题。我使用的是python3.3.3。你知道吗
有什么建议吗?还是暗示?你知道吗
致以最诚挚的问候
约泽夫
目前没有回答
相关问题 更多 >
编程相关推荐