python和java相互通信_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()

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值