[英]Data not received by twisted socket connection
我有一个扭曲的服务器脚本侦听unix套接字,它在客户端处于扭曲状态时接收数据但是如果我通过vanilla python套接字代码发送它则不起作用。
class SendProtocol(LineReceiver):
"""
This works
"""
def connectionMade(self):
print 'sending log'
self.sendLine(self.factory.logMessage)
if __name__ == '__main__':
address = FilePath('/tmp/test.sock')
startLogging(sys.stdout)
clientFactory = ClientFactory()
clientFactory.logMessage = 'Dfgas35||This is a message from server'
clientFactory.protocol = SendProtocol
port = reactor.connectUNIX(address.path, clientFactory)
reactor.run()
但这不(服务器没有获得任何数据)
sock = socket.socket(socket.AF_UNIX, socket.SOCK_STREAM)
sock_addr = '/tmp/test.sock'
try:
sock.connect(sock_addr)
except socket.error, msg:
print >> sys.stderr, msg
sys.exit(1)
sock.setblocking(0) # not needed though tried both ways
print 'connected %s' % sock.getpeername()
print 'End END to abort'
while True:
try:
line = raw_input('Enter mesg: ')
if line.strip() == 'END':
break
line += '\n'
print 'sending'
sock.sendall(line)
finally:
sock.close()
您的两个客户端程序发送不同的数据 一个发送\\r\\n
-terminated行。 另一个发送\\n
-terminated行。 也许你的服务器期待\\r\\n
-terminated行,这就是后一个例子看起来不起作用的原因。 你的非Twisted示例也会在它发送的第一行之后关闭套接字,但继续其read-send循环。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.