Skip to content

Instantly share code, notes, and snippets.

@rm77
Last active October 8, 2018 14:46
Show Gist options
  • Star 3 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save rm77/27d0ddded75afe72e79fd16ce88be3c8 to your computer and use it in GitHub Desktop.
Save rm77/27d0ddded75afe72e79fd16ce88be3c8 to your computer and use it in GitHub Desktop.
simple tcp client server, pemrograman jaringan 2017 2018
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()
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()
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()
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'
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()
# 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()
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 = ''
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()
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()
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