You are on page 1of 4

Nama : Ahmad Faqihuddin

NIM : 1603015163
Kelas : 6B
MK : Praktik Pemrograman Jaringan Komputer

UTS

Jawaban!

1. Input
2. Aplikasi Socket

Port

Server
#!/usr/bin/env python
# server.py
 
import socket
import select
import config as cfg
import Queue
from threading import Thread
from time import sleep
from random import randint
import sys
 
class ProcessThread(Thread):
    def __init__(self):
        super(ProcessThread, self).__init__()
        self.running = True
        self.q = Queue.Queue()
 
    def add(self, data):
        self.q.put(data)
 
    def stop(self):
        self.running = False
 
    def run(self):
        q = self.q
        while self.running:
            try:
                # block for 1 second only:
                value = q.get(block=True, timeout=1)
                process(value)
            except Queue.Empty:
                sys.stdout.write('.')
                sys.stdout.flush()
        #
        if not q.empty():
            print "Elements left in the queue:"
            while not q.empty():
                print q.get()
 
t = ProcessThread()
t.start()
 
def process(value):
    """
    Implement this. Do something useful with the received data.
    """
    print value
    sleep(randint(1,9))    
 
def main():
    s = socket.socket()        
    host = socket.gethostname()
    port = cfg.PORT                
    s.bind((host, port))        
    print "Listening on port {p}...".format(p=port)
 
    s.listen(5)                
    while True:
        try:
            client, addr = s.accept()
            ready = select.select([client,],[], [],2)
            if ready[0]:
                data = client.recv(4096)
                #print data
                t.add(data)
        except KeyboardInterrupt:
            print
            print "Stop."
            break
        except socket.error, msg:
            print "Socket error! %s" % msg
            break
    #
    cleanup()
 
def cleanup():
    t.stop()
    t.join()
 
#########################################################
 
if __name__ == "__main__":
    main()
Client
#!/usr/bin/env python
# client.py
import config as cfg
import sys
import socket
def main(elems):
    try:
        for e in elems:
            client = socket.socket(socket.AF_INET,
socket.SOCK_STREAM)
            host = socket.gethostname()
            client.connect((host, cfg.PORT))
            client.send(e)
            client.shutdown(socket.SHUT_RDWR)
            client.close()
    except Exception as msg:
        print msg
#########################################################
if __name__ == "__main__":
    main(sys.argv[1:])

You might also like