一候衍、傳遞json對(duì)象如下:
sendData={
? ? ? ? '2016-07-21':{
? ? ? ? ? ? ? ? ?'value':3934,
? ? ? ? ? ? ? ? ?'titles':[u'標(biāo)題1',u'標(biāo)題2',u'標(biāo)題3']
? ? ? ? },
? ? ? ? '2016-07-22':{
? ? ? ? ? ? ? ? ? 'value':1109,
? ? ? ? ? ? ? ? ? 'titles':[u'標(biāo)題4',u'標(biāo)題5',u'標(biāo)題6']
? ? ? ? },
? ? ? ? '2016-07-23':{
? ? ? ? ? ? ? ? ?'value':2365,
? ? ? ? ? ? ? ? ?'titles':[u'標(biāo)題7',u'標(biāo)題8',u'標(biāo)題9']
? ? ? ?}
}
二笼蛛、python 與python 間通信
1.client端
importsocket
importjson
HOST='localhost'
PORT=10001
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM) ?#定義socket類型,網(wǎng)絡(luò)通信蛉鹿,TCP
s.connect((HOST,PORT)) ? #要連接的IP與端口
s.sendall(repr(sendData)); ? ?#使用repr函數(shù)將字典序列化才能傳輸滨砍,不然不能傳輸
s.close()#關(guān)閉連接
2.Server端
importsocket#socket模塊
importcommands#執(zhí)行系統(tǒng)命令模塊
HOST='localhost'
PORT=10001
s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)#定義socket類型,網(wǎng)絡(luò)通信榨为,TCP
s.bind((HOST,PORT))#套接字綁定的IP與端口
s.listen(1)#開始TCP監(jiān)聽
whileTrue:
? ? ? ? conn,addr=s.accept()#接受TCP連接惨好,并返回新的套接字與IP地址
? ? ? ? print'Connected by',addr#輸出客戶端的IP地址
? ? ? ?data=conn.recv(10024)#把接收的數(shù)據(jù)實(shí)例化
? ? ? ? if ?len(data.strip()) ==0:
? ? ? ? ? ? ? ? ?conn.sendall('Done.')
? ? ? ? else:
? ? ? ? ? ? ? ?recData =eval(data) ? # 使用eval()函數(shù)恢復(fù)序列化后的字典
? ? ? ? ? ? ? ?for key,value in recData.items():
? ? ? ? ? ? ? ? ? ? ? ? print key,value['value']
? ? ? ? ? ? ? ? ? ? ? ? for item in value['titles']:
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?print item,
? ? ? ? ? ? ? conn.sendall('Successful')#否則就把結(jié)果發(fā)給對(duì)端(即客戶端)
conn.close()