Last active
October 8, 2018 14:46
-
-
Save rm77/27d0ddded75afe72e79fd16ce88be3c8 to your computer and use it in GitHub Desktop.
simple tcp client server, pemrograman jaringan 2017 2018
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import socket | |
import sys | |
# Inisialisasi Create a TCP/IP socket | |
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) | |
#Koneksi | |
server_address = ('www.detik.com', 80) | |
print >>sys.stderr, 'connecting to %s port %s' % server_address | |
client_socket.connect(server_address) | |
try: | |
# Kirim data | |
message = "GET / HTTP/1.1\r\nHost: www.detik.com\r\n\r\n" | |
print >>sys.stderr, 'Nmessage yang akan dikirim ' , message | |
client_socket.sendall(message) | |
#baca data dari socket | |
while True: | |
data_dari_server = client_socket.recv(20) | |
print >>sys.stderr, 'Data dari server adalah : ' , data_dari_server | |
except socket.error: | |
print "send failed" | |
sys.exit() | |
finally: | |
print >>sys.stderr, 'closing socket' | |
client_socket.close() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import socket | |
import sys | |
import time | |
# Inisialisasi Create a TCP/IP socket | |
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) | |
#Koneksi | |
server_address = ('www.detik.com', 80) | |
print >>sys.stderr, 'connecting to %s port %s' % server_address | |
client_socket.connect(server_address) | |
client_socket.setblocking(0) | |
try: | |
# Kirim data | |
message = "GET / HTTP/1.1\r\nHost: www.detik.com\r\n\r\n" | |
print >>sys.stderr, 'Nmessage yang akan dikirim ' , message | |
client_socket.sendall(message) | |
#baca data dari socket | |
first = True | |
while True: | |
try: | |
data_dari_server = client_socket.recv(100) | |
first = True | |
print >>sys.stderr, 'Data dari server adalah : ' , data_dari_server | |
except socket.error: | |
if (first==True): | |
start_timer = time.time() | |
first = False | |
sekarang = time.time() | |
sys.stdout.write("\r timer %d secs remaining " % (sekarang - start_timer)) | |
sys.stdout.flush() | |
if (sekarang - start_timer>5): | |
break | |
pass | |
finally: | |
print >>sys.stderr, 'closing socket' | |
client_socket.close() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import socket | |
import sys | |
import time | |
# Inisialisasi Create a TCP/IP socket | |
client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM) | |
#Koneksi | |
server_address = ('localhost', 14000) | |
print >>sys.stderr, 'connecting to %s port %s' % server_address | |
client_socket.connect(server_address) | |
client_socket.setblocking(0) | |
try: | |
# Kirim data | |
#message = "GET / HTTP/1.1\r\nHost: www.detik.com\r\n\r\n" | |
message = "ADD 100 10\r\nQUIT\r\n" | |
print >>sys.stderr, 'Nmessage yang akan dikirim ' , message | |
client_socket.sendall(message) | |
#baca data dari socket | |
first = True | |
while True: | |
try: | |
data_dari_server = client_socket.recv(100) | |
first = True | |
print >>sys.stderr, 'Data dari server adalah : ' , data_dari_server | |
except socket.error: | |
if (first==True): | |
start_timer = time.time() | |
first = False | |
sekarang = time.time() | |
sys.stdout.write("\r timer %d secs remaining " % (sekarang - start_timer)) | |
sys.stdout.flush() | |
if (sekarang - start_timer>5): | |
break | |
pass | |
finally: | |
print >>sys.stderr, 'closing socket' | |
client_socket.close() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
def fungsi(jenis,x,y): | |
try: | |
if (jenis=='MUL'): | |
return int(x)*int(y) | |
elif (jenis=='ADD'): | |
return int(x)+int(y) | |
elif (jenis=='SUB'): | |
return int(x)-int(y) | |
else: | |
return 'ERR' | |
except ValueError: | |
return 'ERROR' |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import sys | |
import socket | |
# Create a TCP/IP socket | |
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) | |
# Bind the socket to the port | |
server_address = ('localhost', 14000) | |
print >>sys.stderr, 'starting up on %s port %s' % server_address | |
sock.bind(server_address) | |
# Listen for incoming connections | |
sock.listen(1) | |
while True: | |
# Wait for a connection | |
print >>sys.stderr, 'waiting for a connection' | |
socket_si_client, client_address = sock.accept() | |
print >>sys.stderr, 'connection from', client_address | |
pesan_dari_client = socket_si_client.recv(100) | |
socket_si_client.sendall("dari server --> "+pesan_dari_client) | |
#socket_si_client.sendall('Ada Apa ??'+"\r\n") | |
socket_si_client.close() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
# terjadi perubahan pada pembacaan data dari socket ... | |
#baris 25-32 | |
import sys | |
import socket | |
# Create a TCP/IP socket | |
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) | |
# Bind the socket to the port | |
server_address = ('localhost', 14000) | |
print >>sys.stderr, 'starting up on %s port %s' % server_address | |
sock.bind(server_address) | |
# Listen for incoming connections | |
sock.listen(1) | |
while True: | |
# Wait for a connection | |
print >>sys.stderr, 'waiting for a connection' | |
socket_si_client, client_address = sock.accept() | |
print >>sys.stderr, 'connection from', client_address | |
pesan_dari_client='' | |
while True: | |
data = socket_si_client.recv(100) | |
if not data: | |
break | |
pesan_dari_client = pesan_dari_client+data | |
if (pesan_dari_client.endswith("\r\n")): | |
break | |
socket_si_client.sendall("dari server --> "+pesan_dari_client) | |
#socket_si_client.sendall('Ada Apa ??'+"\r\n") | |
socket_si_client.close() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import sys | |
import socket | |
from lib import * | |
def proses_baris(baris): | |
try: | |
cmd,param1,param2 = baris.split(" ") | |
hasil = fungsi(cmd,param1,param2) | |
except ValueError: | |
hasil = 'ERR' | |
return hasil | |
# Create a TCP/IP socket | |
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) | |
# Bind the socket to the port | |
server_address = ('localhost', 14000) | |
print >>sys.stderr, 'starting up on %s port %s' % server_address | |
sock.bind(server_address) | |
# Listen for incoming connections | |
sock.listen(1) | |
#Wait for a connection | |
while True: | |
print >>sys.stderr, 'waiting for a connection' | |
socket_si_client, client_address = sock.accept() | |
print >>sys.stderr, 'connection from', client_address | |
pesan_dari_client='' | |
while True: | |
data = socket_si_client.recv(20) | |
if not data: | |
break | |
pesan_dari_client = pesan_dari_client+data | |
if pesan_dari_client.startswith("QUIT"): | |
socket_si_client.sendall("Bye\r\n") | |
socket_si_client.close() | |
break | |
elif pesan_dari_client.endswith("\r\n"): | |
hasil = proses_baris(pesan_dari_client) | |
socket_si_client.sendall(str(hasil)+"\r\n") | |
pesan_dari_client = '' |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import sys | |
import socket | |
from lib import * | |
from threading import Thread | |
def proses_baris(baris): | |
try: | |
cmd,param1,param2 = baris.split(" ") | |
hasil = fungsi(cmd,param1,param2) | |
except ValueError: | |
hasil = 'ERR' | |
return hasil | |
def handle_client(socket_si_client, client_address): | |
print "Koneksi dari %s \r\n" % (str(client_address)) | |
pesan_dari_client='' | |
while True: | |
data = socket_si_client.recv(20) | |
if not data: | |
print "socket diclose paksa\r\n" | |
break | |
pesan_dari_client = pesan_dari_client+data | |
if pesan_dari_client.startswith("QUIT"): | |
socket_si_client.sendall("Bye\r\n") | |
socket_si_client.close() | |
break | |
elif pesan_dari_client.endswith("\r\n"): | |
hasil = proses_baris(pesan_dari_client) | |
socket_si_client.sendall(str(hasil)+"\r\n") | |
pesan_dari_client = '' | |
# Create a TCP/IP socket | |
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) | |
# Bind the socket to the port | |
server_address = ('localhost', 14000) | |
print >>sys.stderr, 'starting up on %s port %s' % server_address | |
sock.bind(server_address) | |
# Listen for incoming connections | |
sock.listen(1) | |
#Wait for a connection | |
while True: | |
print >>sys.stderr, 'waiting for a connection' | |
socket_si_client, client_address = sock.accept() | |
print >>sys.stderr, 'connection from', client_address | |
client_process = Thread(target=handle_client,args=(socket_si_client,client_address,)) | |
client_process.start() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import socket | |
import sys | |
# Create a UDP socket | |
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) | |
server_address = ('localhost', 10000) | |
message = 'This is the message. It will be repeated.' | |
try: | |
# Send data | |
print >>sys.stderr, 'sending "%s"' % message | |
sent = sock.sendto(message, server_address) | |
# Receive response | |
print >>sys.stderr, 'waiting to receive' | |
data, server = sock.recvfrom(4096) | |
print >>sys.stderr, 'received "%s"' % data | |
finally: | |
print >>sys.stderr, 'closing socket' | |
sock.close() |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
import socket | |
import sys | |
# Create a TCP/IP socket | |
sock = socket.socket(socket.AF_INET, socket.SOCK_DGRAM) | |
# Bind the socket to the port | |
server_address = ('localhost', 10000) | |
print >>sys.stderr, 'starting up on %s port %s' % server_address | |
sock.bind(server_address) | |
while True: | |
print >>sys.stderr, '\nwaiting to receive message' | |
data, address = sock.recvfrom(4096) | |
print >>sys.stderr, 'received %s bytes from %s' % (len(data), address) | |
print >>sys.stderr, data | |
if data: | |
sent = sock.sendto(data, address) | |
print >>sys.stderr, 'sent %s bytes back to %s' % (sent, address) |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment