
Untitled
By: a guest on
May 5th, 2012 | syntax:
None | size: 1.29 KB | hits: 11 | expires: Never
import socket
import struct
HOST = '127.0.0.1'
PORT = 30004
def socket_send(socket, line):
def _send_internal(data):
no = len(data)
st = 0
while st < no:
i = socket.send(data[st:])
if i == 0:
return False
st += i
return True
if _send_internal(struct.pack('i', len(line))):
if _send_internal(line):
return True
return False
def socket_recv(socket):
def _read_internal(length):
st = 0
msg = ''
while st < length:
i = socket.recv(length - st)
if i == '':
return msg
msg += i
st += len(msg)
return msg
data = _read_internal(4)
if len(data) == 4:
length = struct.unpack('i', data)[0]
data = _read_internal(length)
if len(data) == length:
return data
raise Exception('whatever...')
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
# Bind!
server_socket.bind(('127.0.0.1', 30004))
# Now listen.
server_socket.listen(1)
(clientsocket, address) = server_socket.accept()
while True:
line = socket_recv(clientsocket)
if socket_send(clientsocket, line):
continue