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

发表评论

邮箱地址不会被公开。 必填项已用*标注

机器人检查 *

分享我的最新文章标题到这里

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据