class Client(object):
"""
Client class which will be connected to server
"""
def __init__(self, jid, password):
self._socket = None
def connect(self, host='127.0.0.1', port=5222):
"""
Connect to server
"""
for res in socket.getaddrinfo(host, port, socket.AF_INET, socket.SOCK_STREAM):
family, socktype, proto, canonname, sockaddr = res
try:
self._socket = socket.socket(family, socktype, proto)
except socket.error, msg:
self._socket = None
continue
try:
self._socket.connect(sockaddr)
except socket.error, message:
self._socket.close()
self._socket = None
continue
break
if self._socket is None:
raise ConnectionError("Could'not connect to server")
def disconnect(self):
"""
Disconnecting from server
"""
if self._socket:
self._socket.close()
self._socket = None
def send(self, data):
if self._socket:
self._socket.send(data)
else:
raise ConnectionError("Not connected")
def receive(self):
if self._socket:
data = ""
while True:
received = self._socket.recv(1024)
if received:
data += received
else:
break
return data
else:
raise ConnectionError("Not connected")