Skip to content

Commit 3ab2a41

Browse files
committed
updated udp and zhiwu.
1 parent b238efe commit 3ab2a41

2 files changed

Lines changed: 55 additions & 4 deletions

File tree

12.network/udp_client.py

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
import wifi
2+
wifi.try_connect()
3+
4+
from XAsyncSockets import XAsyncSocketsPool, XAsyncUDPDatagram
5+
from _thread import start_new_thread
6+
7+
class NetServer:
8+
Pool = None
9+
10+
def __init__(self, Server = ('0.0.0.0', 32)):
11+
if NetServer.Pool is None:
12+
NetServer.Pool = XAsyncSocketsPool()
13+
start_new_thread(NetServer.run_forever, ())
14+
15+
self.UDPDatagram = XAsyncUDPDatagram.Create(NetServer.Pool, Server, 256)
16+
self.UDPDatagram.OnDataRecv = NetServer._onUDPDatagramDataRecv
17+
self.UDPDatagram.OnFailsToSend = NetServer._onUDPDatagramFailsToSend
18+
print("LocalAddr : %s:%s" % self.UDPDatagram.LocalAddr)
19+
20+
def exit(self):
21+
self.UDPDatagram.Close()
22+
23+
def unit_test(self):
24+
import time
25+
Remote = ('10.10.10.237', 9954)
26+
data = bytearray(u"1231")
27+
while True:
28+
self.UDPDatagram.AsyncSendDatagram(datagram=data, remoteAddr=Remote)
29+
print(data)
30+
time.sleep(2)
31+
32+
def run_forever():
33+
try:
34+
NetServer.Pool.AsyncWaitEvents()
35+
finally:
36+
NetServer.Pool.StopWaitEvents()
37+
38+
def _onUDPDatagramDataRecv(xAsyncUDPDatagram, remoteAddr, datagram):
39+
print('On UDP Datagram Data Recv (%s:%s) :' % remoteAddr, bytes(datagram), xAsyncUDPDatagram)
40+
41+
def _onUDPDatagramFailsToSend(xAsyncUDPDatagram, datagram, remoteAddr):
42+
print('On UDP Datagram Fails To Send', bytes(datagram), remoteAddr, xAsyncUDPDatagram)
43+
44+
if __name__ == '__main__':
45+
client = NetServer()
46+
client.unit_test()
47+
client.exit()

12.network/zhiwu.py

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -58,13 +58,13 @@ def parse(self, pack):
5858
res = self.core(pack)
5959
if (pack[0] == TYPE_COLLECT):
6060
# return [TYPE_COLLECT, res[1:ord(res[0]) + 1], res[ord(res[0]) + 2:]]
61-
src = 1+ord(res[0])
61+
src = 1+res[0]
6262
dt = 1 + src
63-
return [TYPE_COLLECT, res[1:src], res[dt:dt+ord(res[src])]]
63+
return [TYPE_COLLECT, res[1:src], res[dt:dt+res[src]]]
6464
elif (pack[0] == TYPE_COMMAND):
65-
result = [TYPE_COMMAND, res[1:ord(res[0]) + 1]]
65+
result = [TYPE_COMMAND, res[1:res[0] + 1]]
6666
# print(result)
67-
if (result[1] == 'TimeSysn'):
67+
if (result[1] == b'TimeSysn'):
6868
# print(decode_parse(self.de))
6969
set_time(decode_parse(self.de)[0])
7070
return result
@@ -83,10 +83,14 @@ def parse(self, pack):
8383
print(B)
8484

8585
Pack = A.command()
86+
Data = B.parse(bytearray(Pack))
8687
print(B.parse(bytearray(Pack)))
8788
print(A)
8889
print(B)
8990

91+
print(Data[1].decode('iso-8859-1'))
92+
print(Data[1].split(b' '))
93+
9094
Pack = A.command('TimeSysn')
9195
print(B.parse(bytearray(Pack)))
9296
print(A)

0 commit comments

Comments
 (0)