zoukankan      html  css  js  c++  java
  • python网络编程

    太乱了,只把自己写的代码传上来:

    #basicserver.py
    
    import socket
    
    host = ''
    port = 51423
    
    s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
    s.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1)
    s.bind((host,port))
    
    print "Waiting for connections ..."
    
    s.listen(5)
    
    while True:
        clientsock,clientaddr = s.accept()
        print 'Got connection from ',clientsock.getpeername()
        clientsock.close()
    #broken.py
    
    import sys,socket
    
    
    result = socket.getaddrinfo(sys.argv[1],None)
    
    counter = 0
    
    for item in result:
        print "%-2d: %s" % (counter,item[4])
        counter += 1
    #DNSany.py
    
    
    import sys,DNS
    
    def hierquery(qstring,qtype):
        """Given a query type qtype,returns answers of that type for lookup qstring.
        If not answers are found,removes the most specific component
        (the part before the leftmost period) and retries the query with the
        result. Ic the topmost query fails,returns None."""
        reqobj = DNS.Request()
        try:
            answerobj = reqobj.req(name=qstring,qtype=qtype)
            answers = [x['data'] for x in answerobj.answers if x['type']==qtype]
        except DNS.Base.DNSError:
            answers = []
        if len(answers):
            return  answers
        else:
            remainder = qstring.split(".",1)
            if len(remainder) == 1:
                return None
            else:
                return hierquery(remainder[1],qtype)
    
    def findnameservers(hostname):
        """Attempts to determine the authoritative nameservers for a given
        hostname.Returns None on failure."""
        return hierquery(hostname,DNS.Type.NS)
    
    def getrecordsfromnameserver(qstring,qtype,nslist):
        """Given a list of nameservers in nslist,executes the query requested
        by qstring and qtype on each in order,returning the data from the first server
        that returned 1 or more answers.If no server returned any answers,returns []."""
        for ns in nslist:
            reqobj = DNS.Request(server = ns)
            try:
                answers = reqobj.req(name=qstring,qtype=qtype).answers
                if len(answers):
                    return answers
            except DNS.Base.DBSError:
                 pass
        return []
    
    def nslookup(qstring,qtype,verbose=1):
        nslist = findnameservers(qstring)
        if nslist == None:
            raise RuntimeError,"Couild not find nameserver to use."
        if verbose:
            print "Using nameservers:",", ".join(nslist)
        return getrecordsfromnameserver(qstring,qtype,nslist)
    
    if __name__ == '__main__':
        query = sys.argv[1]
        DNS.DiscoverNameServers()
    
        answers = nslookup(query,DNS.Type.ANY)
    
        if not len(answers):
            print "Not found."
        for item in answers:
            print "%-5s %s" % (item['typename'],item['data'])
    #DNS-basic.py
    
    import sys,DNS
    
    query = sys.argv[1]
    DNS.DiscoverNameServers()
    
    reqobj = DNS.Request()
    
    answerobj = reqobj.req(name=query,qtype=DNS.Type.ANY)
    
    if not len(answerobj.answers):
        print "Not found."
    for item in answerobj.answers:
        print "%-5s %s" % (item['typename'],item['data'])
    #DNSquery.py
    
    import sys,DNS,DNSany,re
    
    def getreverse(query):
        """Given the query,returns an appropriate reverse lookup string
        under IN-ADDR.ARPA if query is an IP address; otherwise,returns None.This
        function is not IPV6-compalite."""
        if re.search('^d+.d+.d+.d+$',query):
            octets = query.split('.')
            octetc.reverse()
            return '.'.join(octets)+'.IN-ADDR.ARPA'
        return None
    
    def formatline(index,typename,descr,data):
        retval = "%-2s %-5s" % (index,typename)
        data = data.replace("
    ","
     ")
    
        if descr != None and len(descr):
            retval += " %-12s" % (descr + ":")
        return retval + " " + data
    
    
    DNS.DiscoverNameServers()
    queries = [(sys.argv[1],DNS.Type.ANY)]
    donequeries = []
    descriptions = {'A': 'IP address',
                    'TXT': 'Data',
                    'PTR': 'Host name',
                    'CNAME' : 'Alias for',
                    'NS': 'Name Server'}
    
    while len(queries):
        (query,qtype) = queries.pop(0)
        if query in donequeries:
            #Don't look up the same thing twice
            continue
        donequeries.append(query)
        print "-" * 77
        print "Results for %s (lookup type %s)" % (query,DNS.Type.typestr(qtype))
    
        print
        rev = getreverse(query)
    
        if rev:
            print "IP address given; doing reverse lookup using ",rev
            query = rev
        answers = DNSany.nslookup(query,qtype,verbose=0)
        if not len(answers):
            print "Not fonund."
    
        count = 0
        for answer in answers:
            count += 1
            if answer['typename'] == 'MX':
                print formatline(count,answer['typename'],'Mail server',
                                 "%s priority %d" % (answer['data'][1],
                                                     answer['data'][0]))
                queries.append((answer['data'][1],DNS.Type.A))
            elif answer['typename'] == 'SOA':
                data = "
    " + "
    ".join([str(x) for x in answer['data']])
                print formatline(count,"SOA","Start of authority",data)
            elif answer['typename'] in descriptions:
                print formatline(count,answer['typename'],descriptions[answer['typename']],answer['data'])
            else:
                print formatline(count,answer['typename'],None,str(answer['data']))
    
            if answer['typename'] in ['CNAME','PTR']:
                queries.append((answer['data'],DNS.Type.ANY))
            if answer['typename'] == 'NS':
                queries.append((answer['data'],DNS.Type.A))
    #echoclient.py
    
    import socket,sys
    port = 51432
    host = 'localhost'
    
    data = "x" * 10485760
    
    s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
    s.connect((host,port))
    
    byteswritten = 0
    
    while byteswritten < len(data):
        startpos = byteswritten
        endpos = min(byteswritten+1024,len(data))
        byteswritten += s.send(data[startpos:endpos])
        sys.stdout.write("Wrote %d bytes
    " % byteswritten)
        sys.stdout.flush()
    
    s.shutdown(1)
    
    print "All data sent."
    
    while True:
        buf = s.recv(1024)
        if not len(buf):
            break
        sys.stdout.write(buf)
    #echoserver.py
    
    import socket,traceback
    
    host = ''
    port = 51432
    
    s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
    s.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1)
    s.bind((host,port))
    s.listen(1)
    
    while True:
        try:
            clientsock,clientaddr = s.accept()
        except KeyboardInterrupt:
            raise
        except:
            traceback.print_exc()
            continue
    
        try:
            print "Got connection from",clientsock.getpeername()
            while  True:
                data = clientsock.recv(4096)
                if not len(data):
                    break
                clientsock.sendall(data)
        except (KeyboardInterrupt,SystemExit):
            raise
        except:
            traceback.print_exc()
    
        try:
            clientsock.close()
        except KeyboradInterrupt:
            raise
        except:
            traceback.print_exc()
    #environment.py
    
    import sys,socket
    
    def getipaddrs(hostname):
        """Given a hos tname,perform a standard (forward) lookup and
            return a list of IP addresses for that host."""
        result = socket.getaddrinfo(hostname,None,0,socket.SOCK_STREAM)
        return [x[4][0] for x in result]
    
    
    hostname = socket.gethostname()
    print "Host name: " ,hostname
    
    print "Fully-qualified name:",socket.getfqdn(hostname)
    
    try:
        print "IP address:",", ".join(getipaddrs(hostname))
    except socket.gaierror,e:
        print "Couldn't not get IP addresses:",e
    #errorserver.py
    
    import socket,traceback
    
    
    host = ''
    port = 51423
    
    s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
    s.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1)
    s.bind((host,port))
    s.listen(1)
    
    print "Waiting client connections ... "
    
    while True:
        try:
            clientsock,clientaddr = s.accept()
        except KeyboardInterrupt:
            raise
        except:
            traceback.print_exc()
            continue
    
        try:
            print "Got connection from",clientsock.getpeername()
        except (KeyboardInterrupt,SystemExit):
            raise
        except:
            traceback.print_exc()
    
        try:
            clientsock.close()
        except KeyboardInterrupt:
            raise
        except:
            traceback.print_exc()
        
    #getaddrinfo-basic.py
    
    import sys,socket
    
    result = socket.getaddrinfo(sys.argv[1],None)
    print result[0][4]
    #getaddrinfo-list
    
    import sys,socket
    
    result = socket.getaddrinfo(sys.argv[1],None,0,socket.SOCK_STREAM)
    
    
    
    counter = 0
    
    for item in result:
        print "%-2d: %s" % (counter,item[4])
        counter += 1
        
    #gethostbyaddr-basic.py
    
    import sys,socket
    
    try:
        result = socket.gethostbyaddr(sys.argv[1])
    
        print 'Primary hostname: '
        print " " + result[0]
    
        print "
    Adresses:"
        for item in result[2]:
            print " " + item
    
    except socket.herror,e:
        print "Couldn't look up name:",e
    #gethostbyaddr-paranoid.py
    
    import sys,socket
    
    def getipaddrs(hostname):
        """Get a list of IP addresses from a given hostname.This is a standard
            (forward) lookup."""
        result = socket.getaddrinfo(hostname,None,0,socket.SOCK_STREAM)
        return [x[4][0] for x in result]
    
    def gethostname(ipaddr):
        """Get the hostname from a given IP address. This is a reverse
            lookup."""
        return socket.gethostbyaddr(ipaddr)[0]
    
    try:
        hostname = gethostname(sys.argv[1])
    
        ipaddrs = getipaddrs(hostname)
    except socket.herror,e:
        print "No host names available for %s; this may be normal." % sys.argv[1]
        sys.exit(0)
    
    except socket.gaierror,e:
        print "Got hostname %s,but it could not be forward-resolved: %s" %(hostname,str(e))
        sys.exit(1)
    
    
    if not sys.argv[1] in ipaddrs:
        print "Got hostname %s,but on forward lookup," % hostname
        print "original IP %s did not appear in IP address list." % sys.argv[1]
        sys.exit(1)
    
    print 'Validated hostname:',hostname
    #getinformation.py
    
    import socket
    
    print 'Creating socket....',
    s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
    print 'done.'
    
    print 'Looking up port number ...',
    port = socket.getservbyname('http','tcp')
    print 'done.'
    
    print 'Connecting to remote host on port %d...' % port
    s.connect(('www.google.com',port))
    print 'done.'
    
    
    print 'Conencted from',s.getsockname()
    print 'connected to',s.getpeername()            
    #getport.py
    import socket
    
    print 'Creating socket...',
    s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
    print 'done.'
    
    print 'Looking up port number...',
    port = socket.getservbyname('http','tcp')
    print 'done.'
    
    print 'Connecting to remote host on %d...' % port,
    s.connect(('www.google.com',port))
    print 'done.'
    #htmlparse.py
    
    from urllib import urlopen
    from HTMLParser import HTMLParser
    
    class Scraper(HTMLParser):
        in_h3 = False
        in_link = False
    
        def handle_starttag(self,tag,attrs):
            attrs = dict(attrs)
            if tag == 'h3':
                self.in_h3 = True
            if tag == 'a' and 'href' in attrs:
                self.in_link = True
                self.chunks = []
                self.url = attrs['href']
    
        def handle_data(self,data):
            if self.in_link:
                self.chunks.append(data)
    
        def handle_endtag(self,tag):
            if tag == 'h3':
                self.in_h3 = False
            if tag == 'a':
                if self.in_h3 and self.in_link:
                    print '%s (%s)' % (''.join(self.chunks),self.url)
                self.in_link = False
    
    #text = urlopen('http://bbs.gameres.com/forum_101_1.html').read()
    text = urlopen('http://www.baidu.com')
    parser = Scraper()
    parser.feed(text)
    parser.close()
    #inetdserver.py
    
    import sys
    print "Welcom"
    print "Please enter a string: "
    
    sys.stdout.flush()
    line = sys.stdin.readline().strip()
    
    print "You entered %d characters." % len(line)
    #inetdsocket.py
    
    import sys,socket,time
    
    s = socket.fromfd(sys.stdin.fileno(),socket.AF_INET,socket.SOCK_STREAM)
    s.sendall("Welcome .
    ")
    s.sendall("According to our records,you are connected from %s.
    " % str(s.getpeername()))
    s.sendall("The local time is %s.
    " % time.asctime())
    #inetdudpserver.py
    
    import socket,time,sys
    
    s = socket.fromfd(sys.stdin.fileno(),socket.AF_INET,socket.SOCK_DGRAM)
    message,address = s.recvfrom(8192)
    
    s.connect(address)
    
    for i in range(10):
        s.send("Reply %d : %s" % (i+1,message))
        time.sleep(2)
    
    s.send("OK,I'm done sending replies.
    ")
    #inetdwaitserver.py
    
    import socket,time,sys,os
    s = socket.fromfd(sys.stdin.fileno(),socket.AF_IENT,socket.SOCK_DGRAM)
    message,address = s.recvfrom(8192)
    
    localaddr = s.getsockname()
    s.close()
    
    pid = os.fork()
    
    if pid:
        sys.exit(0)
    
    s2 = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
    s2.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR)
    s2.bind(localaddr)
    s2.connect(address)
    
    
    for i in range(10):
        s2.send("Reply %d: %s" % (i+1,message))
        time.sleep(2)
    s2.send("OK,I'm done sending replies.
    ")
    #screenraw.py
    
    from urllib import urlopen
    import re
    
    
    #p = re.compile('.*<h2><a class=.*?> herf="(.*?)">(.*?)</a>.*')
    p = re.compile('http.*url.*')
    text = urlopen('http://www.baidu.com').read()
    
    #for url in p.findall(text):
     #   print '%s ' % url
    import pprint
    pprint.pprint(p.findall(text))
    import socket
    
    host = ''
    port = 51423
    
    s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
    s.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1)
    s.bind((host,port))
    s.listen(1)
    
    print "Server is running on port %d; press Ctr-c to terinate." % port
    
    
    while True:
        clientsock,clientaddr = s.accept()
        clientfile = clientsock.makefile('rw',0)
        clientfile.write("Welcom, " + str(clientaddr) + "
    ")
        clientfile.write("Please enter a string: ")
        line = clientfile.readline().strip()
        clientfile.write("You entered %d characters.
    " % len(line))
        clientfile.close()
        clientsock.close()
    #shutdown.py
    
    import socket,sys,time
    
    host = sys.argv[1]
    textport = sys.argv[2]
    filename = sys.argv[3]
    
    try:
        s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
    except socket.error,e:
        print 'Strange error creating socket: %s' % e
        sys.exit(1)
    
    
    try:
        port = int(textport)
    except ValueError:
        try:
            port = socket.getservbyname(textport,'tcp')
        except socket.error,e:
            print  "Couldn't find port: %s" % e
            sys.exit(1)
    
    try:
        s.connect((host,port))
    except socket.gaierror,e:
        print 'Address-related error connecting to server: %s' % e
        sys.exit(1)
    except socket.error,e:
        print 'Connetion error : %s' % e
        sys.exit(1)
    
    
    print 'sleeping ...'
    time.sleep(10)
    print 'Continuing.'
    
    try:
        s.sendall("GET %s HTTP/1.0
    
    " % filename)
    except socket.error,e:
        print 'Error sending data: %s' % e
        sys.exit(1)
    
    try:
        s.shutdown(1)
    except socket.error,e:
        print "Error sending data (detected by shutdown): %s" % e
        sys.exit(1)
        
    while True:
        try:
            buf = s.recv(2048)
        except socket.error,e:
            print 'Error receiving data: %s' % e
            sys.exit(1)
        if not len(buf):
            break
        sys.stdout.write(buf)
    #shutdownfile.py
    
    import socket,sys,time
    
    host = sys.argv[1]
    textport = sys.argv[2]
    filename = sys.argv[3]
    
    try:
        s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
    except socket.error,e:
        print "Strang eror creating socket: %s" % e
        sys.exit(1)
    
    
    try:
        s.connect((host,port))
    except socket.gaierror,e:
        print "Address-related error connecting to server: %s" % e
        sys.exit(1)
    except socket.error,e:
        print "Connection error: %s" % e
        sys.exit(1)
    
    
    fd = s.makefile('rw',0)
    
    print "sleeping ..."
    time.sleep(10)
    print "Continuing."
    
    
    try:
        fd.write("GET %s HTTP/1.0
    
    " % filename)
    except socket.error,e:
        print "Error sending data: %s" % e
        sys.exit(1)
    
    try:
        fd.flush()
    except socket.error,e:
        print "Error sending data (detected by flush) : %s" % e
        sys.exit(1)
    
    try:
        s.shutdown(1)
        s.close()
    except socket.error,e:
        print "Error sending data (dectected by shutdown) : %s" % e
        sys.exit(1)
    
    while True:
        try:
            buf = fd.read(2048)
        except socket.error,e:
            print "Error receiving data: %s" % e
            sys.exit(1)
        if not len(buf):
            break
        sys.stdout.write(buf)
    #socket1.py
    
    import socket
    
    print 'Creating socket ...',
    
    s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
    
    print 'done ...'
    
    print 'Connecting to remote host ...',
    
    s.connect(("www.google.com",80))
    
    print 'Done ...'
    #socketrrors.py
    import socket,sys
    
    
    textport = 80
    filename = r'E:/project.txt'
    
    
    try:
        s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
    except socket.error,e:
        print 'Strange error creating socket: %s' % e
        sys.exit(1)
    
    
    try:
        port = int(textport)
    except ValueError:
        try:
            port = socket.getservbyname(textport,'tcp')
        except socket.error,e:
            print "Couldn't find your port: %s" % e
            sys.exit(1)
    host = 'www.baidu.com'
    
    try:
        s.connect((host,port))
    except socket.gaierror,e:
        print 'Address-related error connecting to server: %s' % e
        sys.exit(1)
    except socket.error,e:
        print 'Connection error: %s' % e
        sys.exit(1)
    
    
    try:
        s.sendall('GET %s HTTP/1.0
    
    ' % filename)
    except socket.error,e:
        print 'Error sending data: %s' % e
        sys.exit(1)
    
    
    while True:
        try:
            buf = s.recv(2048)
        except socket.error,e:
            print 'Error receiving data: %s' % e
            sys.exit(1)
        if not len(buf):
            break
        sys.stdout.write(buf)
        
    #sockeksever.py
    
    import socket
    import sys
    from thread import *
    
    HOST = ''    # Symbolic name meaning all available interfaces
    PORT = 8889    # Arbitrary non-privileged port
    
    s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    print 'Socket created'
    
    #Bind socket to local host and port
    try:
        s.bind((HOST, PORT))
    except socket.error , msg:
        print 'Bind failed. Error Code : ' + str(msg[0]) + ' Message ' + msg[1]
        sys.exit()
        
    print 'Socket bind complete'
    
    #Start listening on socket
    s.listen(10)
    print 'Socket now listening'
    
    #Function for handling connections. This will be used to create threads
    def clientthread(conn):
        #Sending message to connected client
        conn.send('Welcome to the server. Type something and hit enter
    ') #send only takes string
        
        #infinite loop so that function do not terminate and thread do not end.
        while True:
            
            #Receiving from client
            data = conn.recv(1024)
            reply = 'OK...' + data
            if not data: 
                break
        
            conn.sendall(reply)
        
        #came out of loop
        conn.close()
    
    #now keep talking with the client
    while 1:
        #wait to accept a connection - blocking call
        conn, addr = s.accept()
        print 'Connected with ' + addr[0] + ':' + str(addr[1])
        
        #start new thread takes 1st argument as a function name to be run, second is the tuple of arguments to the function.
        start_new_thread(clientthread ,(conn,))
    
    s.close()
    s.close()
    #sockettest.py
    
    #Socket client example in python
    
    import socket    #for sockets
    import sys    #for exit
    
    #create an INET, STREAMing socket
    try:
        s = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
    except socket.error:
        print 'Failed to create socket'
        sys.exit()
        
    print 'Socket Created'
    
    host = 'oschina.net';
    port = 80;
    
    try:
        remote_ip = socket.gethostbyname( host )
    
    except socket.gaierror:
        #could not resolve
        print 'Hostname could not be resolved. Exiting'
        sys.exit()
    
    #Connect to remote server
    s.connect((remote_ip , port))
    
    print 'Socket Connected to ' + host + ' on ip ' + remote_ip
    
    #Send some data to remote server
    message = "GET / HTTP/1.1
    Host: oschina.net
    
    "
    
    try :
        #Set the whole string
        s.sendall(message)
    except socket.error:
        #Send failed
        print 'Send failed'
        sys.exit()
    
    print 'Message send successfully'
    
    #Now receive data
    reply = s.recv(4096)
    
    print reply
    
    s.close()
    #syslogsample.py
    
    import syslog,sys,StringIO,traceback,os
    
    def logexception(includetraceback = 0):
        exctype,exception,exctraceback = sys.exc_info()
        excclass = str(exception.__class___)
        message = str(exception)
    
        if not includetraceback:
            syslog.syslog(syslog.LOG_ERR,"%s: %s" % (excclass,message))
        else:
            excfd = StringIO.StringIO()
            traceback.print_exception(exctype,exception,exctraceback,None,excfd)
    
            for line in excfd.getvalue().split("
    "):
                syslog.syslog(syslog.LOG_ERR,line)
    
    
    def initsyslog():
        syslog.openlog("%s[%d]" % (os.path.basename(sys.argv[0]),os.getpid()),0,syslog.LOG_DAEMON)
        syslog.syslog("Started.")
    
    
    initsyslog()
    
    try:
        raise RuntimeError,"Exception 1"
    except:
        logexception(0)
    
    try:
        raise RuntimeError,"Exception 2"
    except:
        logexception(1)
    
    syslog.syslog("I'm terminating.")
    #udp.py
    
    import socket,sys
    
    host = sys.argv[1]
    textport = sys.argv[2]
    
    s = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
    
    try:
        port = int(textport)
    except ValueError:
        port = socket.getservbyname(textport,"udp")
    
    s.connect((host,port))
    print "Enter data to transmit: "
    data = sys.stdin.readline().strip()
    s.sendall(data)
    
    print "Looking for replies ; press  Ctrl-C or Ctrl-Break to stop."
    
    while True:
        buf = s.recv(2048)
        if not len(buf):
            break;
        sys.stdout.write(buf)
    #udpechoserver.py
    
    import socket,traceback
    
    host = ''
    port = 51423
    
    s = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
    s.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1)
    s.bind((host,port))
    
    
    while True:
        try:
            message,address = s.recvfrom(8192)33
            print "Got data from",address
            s.sendto(message,address)
    
        except (KeyboardInterrupt,SystemExit):
            raise
        except:
            traceback.print_exc()
    
        
    #udptimeserver.py
    
    import socket,traceback,time,struct
    
    host = ''
    port = 51423
    
    s = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
    s.setsockopt(socket.SOL_SOCKET,socket.SO_REUSEADDR,1)
    s.bind((host,port))
    
    while True:
        try:
            message,address = s.recvfrom(8192)
            print "Got from client :",address
            secs = int(time.time())
            secs -= 60*60*24
            secs += 2208988800
            reply = struct.pack("!I",secs)
            s.sendto(reply,address)
        except (KeyboardInterrupt,SystemExit):
            raise
        except:
            traceback.print_exc()
    #udptime.py
    
    import socket,sys,struct,time
    
    
    port = 51423
    
    host = socket.gethostname()
    
    s = socket.socket(socket.AF_INET,socket.SOCK_DGRAM)
    
    s.sendto('',(host,port))
    
    print "Looking for replies ; press Ctrl-C to stop."
    
    buf = s.recvfrom(2048)[0]
    
    if len(buf) != 4:
        print "Wrong-sized reply %d: %s" % (len(buf),buf)
        sys.exit(1)
    
    secs = struct.unpack("!I",buf)[0]
    secs -= 2208988800
    
    print time.ctime(int(secs))

    这些比较乱,只看代码,属于网络编程的基础部分

    有一种落差是,你配不上自己的野心,也辜负了所受的苦难
  • 相关阅读:
    计算机是如何启动的
    比特币
    区块链技术
    哈夫曼树与哈夫曼编码
    Prim Algoritm(最小生成树)
    机器学习概述总览
    线性查找算法(BFPRT)
    DFS(深度优先搜索)
    BFS(广度优先搜索)
    (Dijkstra)迪杰斯特拉算法-最短路径算法
  • 原文地址:https://www.cnblogs.com/lfsblack/p/3291911.html
Copyright © 2011-2022 走看看