我尝试使用套接字进行 2 次发送。第一个成功,下一个没有。从http://docs.python.org/howto/sockets.html 看来,应该允许多次发送。无论好坏,我真的不需要从套接字读取。我使用了 twisted,但就目前的目的而言,如果我能提供帮助,我想坚持使用套接字(部分原因是我在已经使用 twisted 进行通信的应用程序中使用它。这是一个单独的连接)。
“当连接完成后,socket s 可以用来发送请求页面的文本。同一个socket会读取回复,然后被销毁。没错,被销毁。客户端sockets通常只用于一个交换(或一小组顺序交换)。”
发送成功的返回值 = 35 发送失败的返回值 = 32
进行一些小的编辑以删除任何业务逻辑的代码。
self._commandSock = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
def sendPrereqs(self,id,prereqs):
self._commandSock.connect(self._commandConnection)
#parse prereqs
temp = prereqs.split(',')
for pair in temp:
tup = pair.partition(':')
try:
command = 'some command'
logging.info('sending command: ' + command)
ret = self._commandSock.send(command)
if ret == None:
logging.info('send called successfully: ' + command)
else:
logging.info('socket returned non-None: ' + str(ret))
except:
print 'Unexpected Exception ', sys.exc_info()[0]()
print sys.exc_info()
#logging.info('Unexpected Exception '+ str(sys.exc_info()[0]()))
#logging.info(' ' + str(sys.exc_info()))
self._commandSock.close()`