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