<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://lms.onnocenter.or.id/wiki/index.php?action=history&amp;feed=atom&amp;title=Python%3A_Echo_UDP_Server</id>
	<title>Python: Echo UDP Server - Revision history</title>
	<link rel="self" type="application/atom+xml" href="https://lms.onnocenter.or.id/wiki/index.php?action=history&amp;feed=atom&amp;title=Python%3A_Echo_UDP_Server"/>
	<link rel="alternate" type="text/html" href="https://lms.onnocenter.or.id/wiki/index.php?title=Python:_Echo_UDP_Server&amp;action=history"/>
	<updated>2026-04-20T01:00:08Z</updated>
	<subtitle>Revision history for this page on the wiki</subtitle>
	<generator>MediaWiki 1.45.1</generator>
	<entry>
		<id>https://lms.onnocenter.or.id/wiki/index.php?title=Python:_Echo_UDP_Server&amp;diff=40389&amp;oldid=prev</id>
		<title>Onnowpurbo: New page: Script untuk Server    #!/usr/bin/env python    &quot;&quot;&quot;  A simple echo server that uses UDP  &quot;&quot;&quot;    import optparse  import select  import socket  import sys    # setup variables  host = &quot;&quot;  b...</title>
		<link rel="alternate" type="text/html" href="https://lms.onnocenter.or.id/wiki/index.php?title=Python:_Echo_UDP_Server&amp;diff=40389&amp;oldid=prev"/>
		<updated>2014-05-04T09:23:08Z</updated>

		<summary type="html">&lt;p&gt;New page: Script untuk Server    #!/usr/bin/env python    &amp;quot;&amp;quot;&amp;quot;  A simple echo server that uses UDP  &amp;quot;&amp;quot;&amp;quot;    import optparse  import select  import socket  import sys    # setup variables  host = &amp;quot;&amp;quot;  b...&lt;/p&gt;
&lt;p&gt;&lt;b&gt;New page&lt;/b&gt;&lt;/p&gt;&lt;div&gt;Script untuk Server &lt;br /&gt;
&lt;br /&gt;
 #!/usr/bin/env python&lt;br /&gt;
 &lt;br /&gt;
 &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
 A simple echo server that uses UDP&lt;br /&gt;
 &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 import optparse&lt;br /&gt;
 import select&lt;br /&gt;
 import socket&lt;br /&gt;
 import sys&lt;br /&gt;
 &lt;br /&gt;
 # setup variables&lt;br /&gt;
 host = &amp;quot;&amp;quot;&lt;br /&gt;
 backlog = 5&lt;br /&gt;
 size = 1024 &lt;br /&gt;
 &lt;br /&gt;
 # parse options&lt;br /&gt;
 parser = optparse.OptionParser(usage = &amp;quot;%prog [options]&amp;quot;,&lt;br /&gt;
                                version = &amp;quot;%prog 0.1&amp;quot;)&lt;br /&gt;
 parser.add_option(&amp;quot;-p&amp;quot;, &amp;quot;--port&amp;quot;, type=&amp;quot;int&amp;quot;,dest=&amp;quot;port&amp;quot;,&lt;br /&gt;
                   metavar=&amp;quot;PORT&amp;quot;,default=0,&lt;br /&gt;
                   help=&amp;quot;port number for the server&amp;quot;)&lt;br /&gt;
 parser.add_option(&amp;quot;-d&amp;quot;,&amp;quot;--debug&amp;quot;,action=&amp;quot;store_true&amp;quot;,dest=&amp;quot;debug&amp;quot;,&lt;br /&gt;
                   default=False,&lt;br /&gt;
                   help=&amp;quot;print debugging information&amp;quot;) &lt;br /&gt;
 &lt;br /&gt;
 (options, args) = parser.parse_args()&lt;br /&gt;
 &lt;br /&gt;
 port = options.port&lt;br /&gt;
 debugging = options.debug&lt;br /&gt;
 &lt;br /&gt;
 # create socket&lt;br /&gt;
 server = None&lt;br /&gt;
 try:&lt;br /&gt;
     server = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)&lt;br /&gt;
     server.bind((host,port))&lt;br /&gt;
     print server.getsockname()&lt;br /&gt;
 except socket.error, (code,message):&lt;br /&gt;
     if server:&lt;br /&gt;
        server.close()&lt;br /&gt;
     print &amp;quot;Could not open socket: &amp;quot; + message&lt;br /&gt;
     sys.exit(1)&lt;br /&gt;
 &lt;br /&gt;
 # loop through sockets&lt;br /&gt;
 input = [server,sys.stdin]&lt;br /&gt;
 running = True&lt;br /&gt;
 while running:&lt;br /&gt;
     inputready,outputready,exceptready = select.select(input,[],[]) &lt;br /&gt;
 &lt;br /&gt;
     for s in inputready: &lt;br /&gt;
 &lt;br /&gt;
         if s == server:&lt;br /&gt;
             # handle the server socket&lt;br /&gt;
             try:&lt;br /&gt;
                 data,address = server.recvfrom(size)&lt;br /&gt;
                 print data&lt;br /&gt;
                 server.sendto(data,address)&lt;br /&gt;
             except:&lt;br /&gt;
                 running = False &lt;br /&gt;
 &lt;br /&gt;
         elif s == sys.stdin:&lt;br /&gt;
             # handle standard input&lt;br /&gt;
             junk = sys.stdin.readline()&lt;br /&gt;
             running = False&lt;br /&gt;
 &lt;br /&gt;
 # close server socket&lt;br /&gt;
 server.close()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Script untuk Client&lt;br /&gt;
&lt;br /&gt;
 #!/usr/bin/env python&lt;br /&gt;
 &lt;br /&gt;
 &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
 An echo client that uses UDP.  Entering a blank line will exit the client.&lt;br /&gt;
 &amp;quot;&amp;quot;&amp;quot;&lt;br /&gt;
 &lt;br /&gt;
 import optparse&lt;br /&gt;
 import select&lt;br /&gt;
 import socket&lt;br /&gt;
 import sys&lt;br /&gt;
 &lt;br /&gt;
 # setup variables&lt;br /&gt;
 size = 1024&lt;br /&gt;
 &lt;br /&gt;
 # parse options&lt;br /&gt;
 parser = optparse.OptionParser(usage = &amp;quot;%prog [options]&amp;quot;,&lt;br /&gt;
                                version = &amp;quot;%prog 0.1&amp;quot;)&lt;br /&gt;
 parser.add_option(&amp;quot;-p&amp;quot;, &amp;quot;--port&amp;quot;, type=&amp;quot;int&amp;quot;,dest=&amp;quot;port&amp;quot;,&lt;br /&gt;
                   metavar=&amp;quot;PORT&amp;quot;,default=0,&lt;br /&gt;
                   help=&amp;quot;port number for the server&amp;quot;)&lt;br /&gt;
 parser.add_option(&amp;quot;-s&amp;quot;, &amp;quot;--server&amp;quot;, type=&amp;quot;string&amp;quot;, dest=&amp;quot;host&amp;quot;,&lt;br /&gt;
                   metavar=&amp;quot;SERVER&amp;quot;,default=socket.gethostname(),&lt;br /&gt;
                   help=&amp;quot;host name for the server&amp;quot;)&lt;br /&gt;
 parser.add_option(&amp;quot;-d&amp;quot;,&amp;quot;--debug&amp;quot;,action=&amp;quot;store_true&amp;quot;,dest=&amp;quot;debug&amp;quot;,&lt;br /&gt;
                   default=False,&lt;br /&gt;
                   help=&amp;quot;print debugging information&amp;quot;) &lt;br /&gt;
 &lt;br /&gt;
 (options, args) = parser.parse_args()&lt;br /&gt;
 &lt;br /&gt;
 host = options.host&lt;br /&gt;
 port = options.port&lt;br /&gt;
 debugging = options.debug&lt;br /&gt;
 &lt;br /&gt;
 &lt;br /&gt;
 # setup socket&lt;br /&gt;
 client = None&lt;br /&gt;
 try:&lt;br /&gt;
     client = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)&lt;br /&gt;
 except socket.error, (code,message):&lt;br /&gt;
     if client:&lt;br /&gt;
         client.close()&lt;br /&gt;
     print &amp;quot;Could not open socket: &amp;quot; + message&lt;br /&gt;
     sys.exit(1)&lt;br /&gt;
     &lt;br /&gt;
     &lt;br /&gt;
 sys.stdout.write(&amp;#039;%&amp;#039;)&lt;br /&gt;
 sys.stdout.flush()&lt;br /&gt;
 &lt;br /&gt;
 # handle input&lt;br /&gt;
 input = [client,sys.stdin]&lt;br /&gt;
 running = True&lt;br /&gt;
 while running:&lt;br /&gt;
     inputready,outputready,exceptready = select.select(input,[],[]) &lt;br /&gt;
 &lt;br /&gt;
     for s in inputready:&lt;br /&gt;
         &lt;br /&gt;
         if s == client:&lt;br /&gt;
             try:&lt;br /&gt;
                 data,address = client.recvfrom(size)&lt;br /&gt;
             except socket.error, (code,message):&lt;br /&gt;
                 print &amp;quot;Error: socket broken: &amp;quot; + message&lt;br /&gt;
                 break&lt;br /&gt;
             sys.stdout.write(data)&lt;br /&gt;
             sys.stdout.write(&amp;#039;%&amp;#039;)&lt;br /&gt;
             sys.stdout.flush()&lt;br /&gt;
         elif s == sys.stdin:&lt;br /&gt;
             line = sys.stdin.readline()&lt;br /&gt;
             if line == &amp;#039;\n&amp;#039;:&lt;br /&gt;
                 running = False&lt;br /&gt;
             try:&lt;br /&gt;
                 client.sendto(line,(host,port))&lt;br /&gt;
             except socket.error, (code,message):&lt;br /&gt;
                 print &amp;quot;Error: socket broken: &amp;quot; + message&lt;br /&gt;
                 break&lt;br /&gt;
             sys.stdout.write(&amp;#039;%&amp;#039;)&lt;br /&gt;
             sys.stdout.flush()  &lt;br /&gt;
 &lt;br /&gt;
 # close socket&lt;br /&gt;
 s.close()&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
==Referensi==&lt;br /&gt;
&lt;br /&gt;
* http://ilab.cs.byu.edu/python/code.html&lt;br /&gt;
* http://ilab.cs.byu.edu/python/code/echoserver-udp.py&lt;br /&gt;
* http://ilab.cs.byu.edu/python/code/echoclient-udp.py&lt;/div&gt;</summary>
		<author><name>Onnowpurbo</name></author>
	</entry>
</feed>