symbian-qemu-0.9.1-12/python-2.6.1/Demo/sockets/udpecho.py
changeset 1 2fb8b9db1c86
equal deleted inserted replaced
0:ffa851df0825 1:2fb8b9db1c86
       
     1 #! /usr/bin/env python
       
     2 
       
     3 # Client and server for udp (datagram) echo.
       
     4 #
       
     5 # Usage: udpecho -s [port]            (to start a server)
       
     6 # or:    udpecho -c host [port] <file (client)
       
     7 
       
     8 import sys
       
     9 from socket import *
       
    10 
       
    11 ECHO_PORT = 50000 + 7
       
    12 BUFSIZE = 1024
       
    13 
       
    14 def main():
       
    15     if len(sys.argv) < 2:
       
    16         usage()
       
    17     if sys.argv[1] == '-s':
       
    18         server()
       
    19     elif sys.argv[1] == '-c':
       
    20         client()
       
    21     else:
       
    22         usage()
       
    23 
       
    24 def usage():
       
    25     sys.stdout = sys.stderr
       
    26     print 'Usage: udpecho -s [port]            (server)'
       
    27     print 'or:    udpecho -c host [port] <file (client)'
       
    28     sys.exit(2)
       
    29 
       
    30 def server():
       
    31     if len(sys.argv) > 2:
       
    32         port = eval(sys.argv[2])
       
    33     else:
       
    34         port = ECHO_PORT
       
    35     s = socket(AF_INET, SOCK_DGRAM)
       
    36     s.bind(('', port))
       
    37     print 'udp echo server ready'
       
    38     while 1:
       
    39         data, addr = s.recvfrom(BUFSIZE)
       
    40         print 'server received %r from %r' % (data, addr)
       
    41         s.sendto(data, addr)
       
    42 
       
    43 def client():
       
    44     if len(sys.argv) < 3:
       
    45         usage()
       
    46     host = sys.argv[2]
       
    47     if len(sys.argv) > 3:
       
    48         port = eval(sys.argv[3])
       
    49     else:
       
    50         port = ECHO_PORT
       
    51     addr = host, port
       
    52     s = socket(AF_INET, SOCK_DGRAM)
       
    53     s.bind(('', 0))
       
    54     print 'udp echo client ready, reading stdin'
       
    55     while 1:
       
    56         line = sys.stdin.readline()
       
    57         if not line:
       
    58             break
       
    59         s.sendto(line, addr)
       
    60         data, fromaddr = s.recvfrom(BUFSIZE)
       
    61         print 'client received %r from %r' % (data, fromaddr)
       
    62 
       
    63 main()