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

服务器端:

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
''' _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()

客户端:

复制代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
''' _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内容请搜索靠谱客的其他文章。

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

评论列表共有 0 条评论

立即
投稿
返回
顶部