我是靠谱客的博主 激昂奇迹,最近开发中收集的这篇文章主要介绍python TCP通信,主从服务设计(通过json进行数据通信)服务器端:客户端:,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

服务器端:

'''
_oo0oo_
o8888888o
88" . "88
(| -_- |)
0
=
/0
___/`---'___
.' \|
|// '.
/ \|||
:
|||// 
/ _||||| -:- |||||- 
|
| \
- /// |
|
| _|
''---/''
|_/ |

.-__
'-'
___/-. /
___'. .'
/--.--
`. .'___
."" '<
`.____<|>_/___.' >' "".
| | :
`- `.;` _ /`;.`/ - ` : | |

 `_.
_ __ /__ _/
.-` /
/
=====`-.____`.___ _____/___.-`___.-'=====
`=---='
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
佛祖保佑
永不宕机
永无BUG
佛曰:
写字楼里写字间,写字间里程序员;
程序人员写程序,又拿程序换酒钱。
酒醒只在网上坐,酒醉还来网下眠;
酒醉酒醒日复日,网上网下年复年。
但愿老死电脑间,不愿鞠躬老板前;
奔驰宝马贵者趣,公交自行程序员。
别人笑我忒疯癫,我笑自己命太贱;
不见满街漂亮妹,哪个归得程序员?
Description: 学习使用
Version: 1.0
Author: 赵守风
Email: 1583769112@qq.com
Date: 2021-08-04 10:34:23
LastEditors: zsf
FilePath: http_demoserver_json.py
LastEditTime: 2021-08-04 14:25:33
'''
# python 3
# 服务端
import numpy as np
import socket
import threading
import json
import logging
TCP_PORT = 12005
def tcplink(sock,addr):
print('Accept new connection from %s:%s...' % addr)
sock.send( ('connect success!').encode() )
# 客户端返回信息进行确认开始工作
data=sock.recv(1024*10).decode()
data_json = json.loads( data )
print(data_json["start"])
if data_json["start_flag"] == 1:
while True:
# 这里开始使用传数据
data = {
"publicThreshold":{
},
"wh_rate_thre":1,
"areas":[ {},{},{}
],
"data":{"deviceId":1, "picPath":""}
}
str_json = json.dumps(data)
sock.send( str_json.encode())
print("---------------发送完成,等待数据返回---------------------")
# 等待接收信息
data=sock.recv(1024*10).decode()
data_json = json.loads( data )
print("success:{}, errMsg:{},resData:{}".format(data_json["success"],data_json["errMsg"],data_json["resData"]))
print("---------------接收数据完成,继续发送数据---------------------")
#sock.close()
#print('Connection from %s:%s closed.'%addr)
def one_servicer():
#Create The Socket
s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
#Listen The Port
s.bind(('192.168.1.97',TCP_PORT))
s.listen(5)
print('Waiting for connection...')
# 一旦监听到立即进入连接
while True:
# 开始一个新连接
sock,addr=s.accept()
# 创建一个线程来处理连接
t=threading.Thread(target=tcplink(sock,addr))
if __name__ == "__main__":
one_servicer()

客户端:

'''
_oo0oo_
o8888888o
88" . "88
(| -_- |)
0
=
/0
___/`---'___
.' \|
|// '.
/ \|||
:
|||// 
/ _||||| -:- |||||- 
|
| \
- /// |
|
| _|
''---/''
|_/ |

.-__
'-'
___/-. /
___'. .'
/--.--
`. .'___
."" '<
`.____<|>_/___.' >' "".
| | :
`- `.;` _ /`;.`/ - ` : | |

 `_.
_ __ /__ _/
.-` /
/
=====`-.____`.___ _____/___.-`___.-'=====
`=---='
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
佛祖保佑
永不宕机
永无BUG
佛曰:
写字楼里写字间,写字间里程序员;
程序人员写程序,又拿程序换酒钱。
酒醒只在网上坐,酒醉还来网下眠;
酒醉酒醒日复日,网上网下年复年。
但愿老死电脑间,不愿鞠躬老板前;
奔驰宝马贵者趣,公交自行程序员。
别人笑我忒疯癫,我笑自己命太贱;
不见满街漂亮妹,哪个归得程序员?
Description: 学习使用
Version: 1.0
Author: 赵守风
Email: 1583769112@qq.com
Date: 2021-08-04 10:33:32
LastEditors: zsf
FilePath: http_democlient_json.py
LastEditTime: 2021-08-04 14:37:47
'''
# python 3
#客户端
import numpy as np
import socket
import json
import time
TCP_PORT = 12005
class tcp_client():
def __init__(self, tcp_port):
self.s=socket.socket(socket.AF_INET,socket.SOCK_STREAM)
self.s.connect(('192.168.1.97',tcp_port))
print( self.s.recv(1024).decode())
str1 = '请开始初始化,'
data = {'start':str1, 'start_flag': 1}
str_json = json.dumps(data)
self.s.send( str_json.encode())
print("请求已经发出,等待初始化信息结果.....")
# 从应用层获取数据
def get_data(self):
print("-------等待服务器端数据........")
str_recv = self.s.recv(1024*10).decode()
data_json = json.loads( str_recv )
# 打印结果
for i in data_json:
print("{}:{}".format(i, data_json[i]))
return data_json
# data ={'end':"初始化完成,数据正确", "end_flag": 1}
# str_json = json.dumps(data)
# self.s.send(str_json.encode())
# 返回结果
def return_result(self,state, errMsg, deviceId, state1, picPath,resData):
data ={
'success':state,
'errMsg' : errMsg,
'resData':{"deviceId":deviceId, "state":state1, "picPath":picPath,"resData":resData}
}
str_json = json.dumps(data)
self.s.send(str_json.encode())
#发送关闭客户端命令
def close_tcp(self):
print(" close tcp ... ")
data = { 'command' : 'close' }
str_json = json.dumps(data)
self.s.send( str_json.encode() )
self.s.close()
client = tcp_client( tcp_port = TCP_PORT )
# 测试步骤
# client.step()
while(True):
data_json = client.get_data()
# 这里对数据进行解析
# 解析完成后对其进行处理
time.sleep(0.5)
#处理完成后返回状态结果
print("-------返回计算数据-----------------")
resData={"deviceId":1, "state":1, "picPath":"mock","proofPics":["1.jpg","2.jpg","3.jpg"]}
client.return_result("1", "sucess", 1, 1,"",resData)
client.close_tcp()

最后

以上就是激昂奇迹为你收集整理的python TCP通信,主从服务设计(通过json进行数据通信)服务器端:客户端:的全部内容,希望文章能够帮你解决python TCP通信,主从服务设计(通过json进行数据通信)服务器端:客户端:所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(53)

评论列表共有 0 条评论

立即
投稿
返回
顶部