本文整理汇总了Python中pysap.SAPNI.SAPNIStreamSocket.recv方法的典型用法代码示例。如果您正苦于以下问题:Python SAPNIStreamSocket.recv方法的具体用法?Python SAPNIStreamSocket.recv怎么用?Python SAPNIStreamSocket.recv使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类pysap.SAPNI.SAPNIStreamSocket
的用法示例。
在下文中一共展示了SAPNIStreamSocket.recv方法的2个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Python代码示例。
示例1: recv
# 需要导入模块: from pysap.SAPNI import SAPNIStreamSocket [as 别名]
# 或者: from pysap.SAPNI.SAPNIStreamSocket import recv [as 别名]
def recv(self):
"""Receive a packet at the Enqueue layer, performing reassemble of
fragmented packets if necessary.
:return: received :class:`SAPEnqueue` packet
:rtype: :class:`SAPEnqueue`
:raise socket.error: if the connection was close
"""
# Receive the NI packet
packet = SAPNIStreamSocket.recv(self)
if SAPEnqueue in packet and packet[SAPEnqueue].more_frags:
log_sapenqueue.debug("Received Enqueue fragmented packet")
head = str(packet[SAPEnqueue])[:20]
data = str(packet[SAPEnqueue])[20:]
total_length = packet[SAPEnqueue].len - 20
recvd_length = len(packet[SAPEnqueue]) - 20
log_sapenqueue.debug("Received %d up to %d bytes", recvd_length, total_length)
while recvd_length < total_length and packet[SAPEnqueue].more_frags == 1:
response = SAPNIStreamSocket.recv(self)[SAPEnqueue]
data += str(response)[20:]
recvd_length += len(response) - 20
log_sapenqueue.debug("Received %d up to %d bytes", recvd_length, total_length)
packet = SAPEnqueue(head + data)
return packet
示例2: server_mode
# 需要导入模块: from pysap.SAPNI import SAPNIStreamSocket [as 别名]
# 或者: from pysap.SAPNI.SAPNIStreamSocket import recv [as 别名]
def server_mode(options):
""""Implements the niping server running mode
:param options: option set from the command line
:type options: Values
"""
if not options.host:
options.host = "0.0.0.0"
sock = socket()
try:
sock.bind((options.host, options.port))
sock.listen(0)
print("")
print(datetime.today().ctime())
print("ready for connect from client ...")
while True:
sc, sockname = sock.accept()
client = SAPNIStreamSocket(sc)
print("")
print(datetime.today().ctime())
print("connect from host '{}', client hdl {} o.k.".format(sockname[0], client.fileno()))
try:
while True:
r = client.recv()
client.send(r.payload)
except SocketError:
pass
finally:
print("")
print(datetime.today().ctime())
print("client hdl {} disconnected ...".format(client.fileno()))
except SocketError:
print("[*] Connection error")
except KeyboardInterrupt:
print("[*] Cancelled by the user")
finally:
sock.shutdown(SHUT_RDWR)
sock.close()