X7ROOT File Manager
Current Path:
/lib64/python2.7/Demo/rpc
lib64
/
python2.7
/
Demo
/
rpc
/
??
..
??
MANIFEST
(361 B)
??
README
(1.23 KB)
??
T.py
(575 B)
??
T.pyc
(952 B)
??
T.pyo
(952 B)
??
mountclient.py
(6.48 KB)
??
mountclient.pyc
(5.58 KB)
??
mountclient.pyo
(5.58 KB)
??
nfsclient.py
(5.2 KB)
??
nfsclient.pyc
(6.74 KB)
??
nfsclient.pyo
(6.74 KB)
??
rnusersclient.py
(2.57 KB)
??
rnusersclient.pyc
(5.01 KB)
??
rnusersclient.pyo
(5.01 KB)
??
rpc.py
(26.98 KB)
??
rpc.pyc
(29.72 KB)
??
rpc.pyo
(29.72 KB)
??
test
(697 B)
??
xdr.py
(4.93 KB)
??
xdr.pyc
(7.72 KB)
??
xdr.pyo
(7.72 KB)
Editing: rnusersclient.py
# Remote nusers client interface import rpc from rpc import Packer, Unpacker, UDPClient, BroadcastUDPClient class RnusersPacker(Packer): def pack_utmp(self, ui): ut_line, ut_name, ut_host, ut_time = utmp self.pack_string(ut_line) self.pack_string(ut_name) self.pack_string(ut_host) self.pack_int(ut_time) def pack_utmpidle(self, ui): ui_itmp, ui_idle = ui self.pack_utmp(ui_utmp) self.pack_uint(ui_idle) def pack_utmpidlearr(self, list): self.pack_array(list, self.pack_itmpidle) class RnusersUnpacker(Unpacker): def unpack_utmp(self): ut_line = self.unpack_string() ut_name = self.unpack_string() ut_host = self.unpack_string() ut_time = self.unpack_int() return ut_line, ut_name, ut_host, ut_time def unpack_utmpidle(self): ui_utmp = self.unpack_utmp() ui_idle = self.unpack_uint() return ui_utmp, ui_idle def unpack_utmpidlearr(self): return self.unpack_array(self.unpack_utmpidle) class PartialRnusersClient: def addpackers(self): self.packer = RnusersPacker() self.unpacker = RnusersUnpacker('') def Num(self): return self.make_call(1, None, None, self.unpacker.unpack_int) def Names(self): return self.make_call(2, None, \ None, self.unpacker.unpack_utmpidlearr) def Allnames(self): return self.make_call(3, None, \ None, self.unpacker.unpack_utmpidlearr) class RnusersClient(PartialRnusersClient, UDPClient): def __init__(self, host): UDPClient.__init__(self, host, 100002, 2) class BroadcastRnusersClient(PartialRnusersClient, BroadcastUDPClient): def __init__(self, bcastaddr): BroadcastUDPClient.__init__(self, bcastaddr, 100002, 2) def test(): import sys if not sys.argv[1:]: testbcast() return else: host = sys.argv[1] c = RnusersClient(host) list = c.Names() for (line, name, host, time), idle in list: line = strip0(line) name = strip0(name) host = strip0(host) print "%r %r %r %s %s" % (name, host, line, time, idle) def testbcast(): c = BroadcastRnusersClient('<broadcast>') def listit(list, fromaddr): host, port = fromaddr print host + '\t:', for (line, name, host, time), idle in list: print strip0(name), print c.set_reply_handler(listit) all = c.Names() print 'Total Count:', len(all) def strip0(s): while s and s[-1] == '\0': s = s[:-1] return s test()
Upload File
Create Folder