⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 test_socket.py

📁 minimal python variant for small footprint apps like embedded apps
💻 PY
字号:
# Not tested:#       socket.fromfd()#       sktobj.getsockopt()#       sktobj.recvfrom()#       sktobj.sendto()#       sktobj.setblocking()#       sktobj.setsockopt()#       sktobj.shutdown()import palmnetfrom test_support import verbose, TestFailedimport socket#import os#import timepalmnet.open()print "Netlib refcount =", palmnet.refcount()print "testing the socket module"def missing_ok(str):    try:        getattr(socket, str)    except AttributeError:        passtry: raise socket.errorexcept socket.error: print "socket.error"print "here"socket.AF_INETsocket.SOCK_STREAMsocket.SOCK_DGRAMsocket.SOCK_RAWsocket.SOCK_RDM###socket.SOCK_SEQPACKETfor optional in ("AF_UNIX",                 "SO_DEBUG", "SO_ACCEPTCONN", "SO_REUSEADDR", "SO_KEEPALIVE",                 "SO_DONTROUTE", "SO_BROADCAST", "SO_USELOOPBACK", "SO_LINGER",                 "SO_OOBINLINE", "SO_REUSEPORT", "SO_SNDBUF", "SO_RCVBUF",                 "SO_SNDLOWAT", "SO_RCVLOWAT", "SO_SNDTIMEO", "SO_RCVTIMEO",                 "SO_ERROR", "SO_TYPE", "SOMAXCONN",                 "MSG_OOB", "MSG_PEEK", "MSG_DONTROUTE", "MSG_EOR",                 "MSG_TRUNC", "MSG_CTRUNC", "MSG_WAITALL", "MSG_BTAG",                 "MSG_ETAG",                 "SOL_SOCKET",                 "IPPROTO_IP", "IPPROTO_ICMP", "IPPROTO_IGMP",                 "IPPROTO_GGP", "IPPROTO_TCP", "IPPROTO_EGP",                 "IPPROTO_PUP", "IPPROTO_UDP", "IPPROTO_IDP",                 "IPPROTO_HELLO", "IPPROTO_ND", "IPPROTO_TP",                 "IPPROTO_XTP", "IPPROTO_EON", "IPPROTO_BIP",                 "IPPROTO_RAW", "IPPROTO_MAX",                 "IPPORT_RESERVED", "IPPORT_USERRESERVED",                 "INADDR_ANY", "INADDR_BROADCAST", "INADDR_LOOPBACK",                 "INADDR_UNSPEC_GROUP", "INADDR_ALLHOSTS_GROUP",                 "INADDR_MAX_LOCAL_GROUP", "INADDR_NONE",                 "IP_OPTIONS", "IP_HDRINCL", "IP_TOS", "IP_TTL",                 "IP_RECVOPTS", "IP_RECVRETOPTS", "IP_RECVDSTADDR",                 "IP_RETOPTS", "IP_MULTICAST_IF", "IP_MULTICAST_TTL",                 "IP_MULTICAST_LOOP", "IP_ADD_MEMBERSHIP",                 "IP_DROP_MEMBERSHIP",                 ):    missing_ok(optional)print "getting sock type"socktype = socket.SocketTypeprint "setting hostname"hostname = socket.sethostname("python.org")print "getting hostname"hostname = socket.gethostname()print "hostbyname:", hostname#hostname = "rtfm.mit.edu"print "gethostbyname"ip = socket.gethostbyname(hostname)print "gethostbyaddr"hname, aliases, ipaddrs = socket.gethostbyaddr(ip)all_host_names = [hname] + aliasesif verbose:    print hostname    print ip    print hname, aliases, ipaddrs    print all_host_namesfor name in all_host_names:    if name.find('.'):        breakelse:    print 'FQDN not found'print socket.getservbyname(('telnet', 'tcp'))try:    print socket.getservbyname(('telnet', 'udp'))except socket.error:    pass# canfork = hasattr(os, 'fork')# try:#     PORT = 50007#     if not canfork or os.fork():#         # parent is server#         s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)#         s.bind((hostname, PORT))#         s.listen(1)#         if verbose:#             print 'parent accepting'#         if canfork:#             conn, addr = s.accept()#             if verbose:#                 print 'connected by', addr#             # couple of interesting tests while we've got a live socket#             f = conn.fileno()#             if verbose:#                 print 'fileno:', f#             p = conn.getpeername()#             if verbose:#                 print 'peer:', p#             n = conn.getsockname()#             if verbose:#                 print 'sockname:', n#             f = conn.makefile()#             if verbose:#                 print 'file obj:', f#             while 1:#                 data = conn.recv(1024)#                 if not data:#                     break#                 if verbose:#                     print 'received:', data#                 conn.send(data)#             conn.close()#     else:#         try:#             # child is client#             time.sleep(5)#             s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)#             if verbose:#                 print 'child connecting'#             s.connect((hostname, PORT))#             msg = 'socket test'#             s.send(msg)#             data = s.recv(1024)#             if msg <> data:#                 print 'parent/client mismatch'#             s.close()#         finally:#             os._exit(1)# except socket.error, msg:#     raise TestFailed, msgprint "test_socket test complete"palmnet.close()

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -