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