#! /usr/bin/python2.7 # Client and server for udp (datagram) echo. # # Usage: udpecho -s [port] (to start a server) # or: udpecho -c host [port] <file (client) import sys from socket import * ECHO_PORT = 50000 + 7 BUFSIZE = 1024 def main(): if len(sys.argv) < 2: usage() if sys.argv[1] == '-s': server() elif sys.argv[1] == '-c': client() else: usage() def usage(): sys.stdout = sys.stderr print 'Usage: udpecho -s [port] (server)' print 'or: udpecho -c host [port] <file (client)' sys.exit(2) def server(): if len(sys.argv) > 2: port = eval(sys.argv[2]) else: port = ECHO_PORT s = socket(AF_INET, SOCK_DGRAM) s.bind(('', port)) print 'udp echo server ready' while 1: data, addr = s.recvfrom(BUFSIZE) print 'server received %r from %r' % (data, addr) s.sendto(data, addr) def client(): if len(sys.argv) < 3: usage() host = sys.argv[2] if len(sys.argv) > 3: port = eval(sys.argv[3]) else: port = ECHO_PORT addr = host, port s = socket(AF_INET, SOCK_DGRAM) s.bind(('', 0)) print 'udp echo client ready, reading stdin' while 1: line = sys.stdin.readline() if not line: break s.sendto(line, addr) data, fromaddr = s.recvfrom(BUFSIZE) print 'client received %r from %r' % (data, fromaddr) main()
Name | Type | Size | Permission | Actions |
---|---|---|---|---|
README | File | 628 B | 0644 |
|
broadcast.py | File | 283 B | 0644 |
|
broadcast.pyc | File | 547 B | 0644 |
|
broadcast.pyo | File | 547 B | 0644 |
|
echosvr.py | File | 738 B | 0755 |
|
echosvr.pyc | File | 827 B | 0644 |
|
echosvr.pyo | File | 827 B | 0644 |
|
finger.py | File | 1.23 KB | 0755 |
|
finger.pyc | File | 1.13 KB | 0644 |
|
finger.pyo | File | 1.13 KB | 0644 |
|
ftp.py | File | 3.84 KB | 0644 |
|
ftp.pyc | File | 2.88 KB | 0644 |
|
ftp.pyo | File | 2.88 KB | 0644 |
|
gopher.py | File | 9.55 KB | 0755 |
|
gopher.pyc | File | 10.08 KB | 0644 |
|
gopher.pyo | File | 10.08 KB | 0644 |
|
mcast.py | File | 2.16 KB | 0755 |
|
mcast.pyc | File | 2.12 KB | 0644 |
|
mcast.pyo | File | 2.12 KB | 0644 |
|
radio.py | File | 287 B | 0644 |
|
radio.pyc | File | 471 B | 0644 |
|
radio.pyo | File | 471 B | 0644 |
|
rpython.py | File | 713 B | 0755 |
|
rpython.pyc | File | 982 B | 0644 |
|
rpython.pyo | File | 982 B | 0644 |
|
rpythond.py | File | 1.18 KB | 0755 |
|
rpythond.pyc | File | 1.3 KB | 0644 |
|
rpythond.pyo | File | 1.3 KB | 0644 |
|
telnet.py | File | 2.94 KB | 0755 |
|
telnet.pyc | File | 2.1 KB | 0644 |
|
telnet.pyo | File | 2.1 KB | 0644 |
|
throughput.py | File | 2.04 KB | 0755 |
|
throughput.pyc | File | 2.42 KB | 0644 |
|
throughput.pyo | File | 2.42 KB | 0644 |
|
udpecho.py | File | 1.43 KB | 0755 |
|
udpecho.pyc | File | 1.98 KB | 0644 |
|
udpecho.pyo | File | 1.98 KB | 0644 |
|
unicast.py | File | 230 B | 0644 |
|
unicast.pyc | File | 456 B | 0644 |
|
unicast.pyo | File | 456 B | 0644 |
|
unixclient.py | File | 232 B | 0644 |
|
unixclient.pyc | File | 424 B | 0644 |
|
unixclient.pyo | File | 424 B | 0644 |
|
unixserver.py | File | 414 B | 0644 |
|
unixserver.pyc | File | 593 B | 0644 |
|
unixserver.pyo | File | 593 B | 0644 |
|