python、java 之间socket通信(传递json对象)

一、传递json对象如下:

sendData={

        '2016-07-21':{

                 'value':3934,

                 'titles':[u'标题1',u'标题2',u'标题3']

        },

        '2016-07-22':{

                  'value':1109,

                  'titles':[u'标题4',u'标题5',u'标题6']

        },

        '2016-07-23':{

                 'value':2365,

                 'titles':[u'标题7',u'标题8',u'标题9']

       }

}

二、python 与python 间通信

1.client端

importsocket

importjson

HOST='localhost'

PORT=10001

s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)  #定义socket类型,网络通信,TCP

s.connect((HOST,PORT))   #要连接的IP与端口

s.sendall(repr(sendData));    #使用repr函数将字典序列化才能传输,不然不能传输

s.close()#关闭连接

2.Server端

importsocket#socket模块

importcommands#执行系统命令模块

HOST='localhost'

PORT=10001

s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)#定义socket类型,网络通信,TCP

s.bind((HOST,PORT))#套接字绑定的IP与端口

s.listen(1)#开始TCP监听

whileTrue:

        conn,addr=s.accept()#接受TCP连接,并返回新的套接字与IP地址

        print'Connected by',addr#输出客户端的IP地址

       data=conn.recv(10024)#把接收的数据实例化

        if  len(data.strip()) ==0:

                 conn.sendall('Done.')

        else:

               recData =eval(data)   # 使用eval()函数恢复序列化后的字典

               for key,value in recData.items():

                        print key,value['value']

                        for item in value['titles']:

                               print item,

                        print

              conn.sendall('Successful')#否则就把结果发给对端(即客户端)

conn.close()

你可能感兴趣的:(python、java 之间socket通信(传递json对象))