Python Socket Client 编程示例
非常简单的实例,对于简单的应用,可以拿来直接使用。
import socket
#
LOGLEVEL = {‘FATAL’:5, ‘ERROR’:4, ‘INFO’:3, ‘DEBUG’:0}
class MyMessage(object):
”’
classdocs
”’
def __init__(self):
”’
Constructor
”’
self.timeOut = 5
self.localIP = socket.gethostbyname(socket.gethostname())
self.localPort = 5062
self._logLevel = LOGLEVEL[‘DEBUG’] #need to define
def setLogLevel(self, level):
self._logLevel = level
def setTimeOut(self, timeOut):
self.timeOut = timeOut
def setLocalAddr(self, localIP=None, localPort=None):
if localIP is not None:
self.localIP = localIP
if localPort is not None:
self.localPort = localPort
def sendByTCP(self, msg, remoteIP, remotePort):
”’
send MSG by TCP. return RESPONSE
”’
socketObj = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
socketObj.settimeout(self.timeOut)
socketObj.connect((remoteIP, int(remotePort)))
# Send data
socketObj.send(msg)
if self._logLevel <= LOGLEVEL[‘INFO’]:
print ‘Sending MSG by TCP to %s:%s…\n’ \
% (remoteIP, remotePort), msg
# Receive one response
buf = ”
while True:
try:
buf = buf + socketObj.recv(2048)
except socket.error, e:
if self._logLevel <= LOGLEVEL[‘ERROR’]:
print ‘\nError sending data:%s’ % e
break
return buf
def sendByUDP(self, msg, remoteIP, remotePort, localIP=None, localPort=None):
”’
send MSG by TCP. return RESPONSE
”’
if localIP is None:
localIP = self.localIP
if localPort is None:
localPort = self.localPort
socketObj = socket.socket(socket.AF_INET, socket.SOCK_DGRAM)
socketObj.settimeout(self.timeOut)
socketObj.bind((localIP, int(localPort)))
# Send data
socketObj.sendto(msg, (remoteIP, remotePort))
if self._logLevel <= LOGLEVEL[‘INFO’]:
print ‘Sending MSG by UDP to %s:%s…\n’ % (remoteIP, remotePort), msg
# Receive one response
buf = ”
while True:
try:
buf = buf + socketObj.recv(2048)
except socket.error, e:
if self._logLevel <= LOGLEVEL[‘ERROR’]:
print ‘\nError receiving data:%s’ % e
break
return buf
if __name__ == “__main__”:
pass