class TcpConnection(object): def __init__(self, loop, socket, peeraddr): self.loop_ = loop self.socket_ = Socket(socket) self.peeraddr_ = peeraddr self.events_ = Events(self.socket_.getSocketFd(), kEevntRead) self.handle_ = Handle(self.events_) self.recvBuffer_ = '' self.writeBuffer_ = '' self.messageCb_ = defMessageCallback def tcpConnectionHandRead(self, reventFd, reventMask): assert reventFd == self.socket_.getSocketFd() data = '' length = 30 while True: try: data = self.socket_.recv(length) except error, e: if e.errno == errno.EAGAIN: break if len(data) == 0: self.loop_.delHandle(self.handle_) self.recvBuffer_ = '' break else: self.recvBuffer_ += data if len(self.recvBuffer_) != 0: self.messageCb_(self, self.recvBuffer_) self.recvBuffer_ = ''
#+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+ # Copyright (c) 2018, raspberrypi.com.tw # All rights reserved. # Use of this source code is governed by a BSD-style license that can be # found in the LICENSE file. # # test_lora_recv.py # The simple test program for lora module to receive file # # Author : sosorry # Date : 10/03/2017 # #!/usr/bin/python # -*- coding: UTF-8 -*- from Logger import Logger from Socket import Socket from LoRa import LoRa rn = LoRa("RN2483") socket = Socket(rn) while True: data = socket.recv() if len(data) == 0: break; socket.close()