版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/u010255642/article/details/82725572
#!/usr/bin/env python2
# -*- coding: utf-8 -*-
"""
Created on Sun Sep 16 15:27:20 2018
@author: myhaspl
@email:[email protected]
server
"""
from twisted.internet.protocol import Factory
from twisted.internet.endpoints import TCP4ServerEndpoint
from twisted.internet import reactor
from twisted.internet.protocol import Protocol
class QOTD(Protocol):#协议类
def connectionMade(self):
self.transport.write("您好!欢迎您的登录,再见!\r\n")
self.transport.loseConnection()
class QOTDFactory(Factory):
def buildProtocol(self, addr):
return QOTD()
if __name__=="__main__":
endpoint = TCP4ServerEndpoint(reactor, 21210)
endpoint.listen(QOTDFactory())
reactor.run()
#!/usr/bin/env python2
# -*- coding: utf-8 -*-
"""
Created on Sun Sep 16 15:28:44 2018
@author: myhaspl
@email:[email protected]
client
"""
from twisted.internet.protocol import Protocol
from twisted.internet.protocol import ClientFactory
from twisted.internet import reactor
HOST="localhost"
PORT=21210
class ClientMessage(Protocol):#协议类
def connectionMade(self):
data=raw_input("请输入要发送给服务器的消息")
self.transport.write(data)
def dataReceived(self, data):
print data
self.transport.loseConnection()
class ClientMessageFactory(ClientFactory):#工厂类
def startedConnecting(self, connector):
print '开始连接'
def buildProtocol(self, addr):
print '已经连接.'
return ClientMessage()
def clientConnectionLost(self, connector, reason):
print '%s==>连接丢失!'%reason
def clientConnectionFailed(self, connector, reason):
print '%s==>连接错误!'%reason
if __name__=="__main__":
reactor.connectTCP(HOST, PORT, ClientMessageFactory())
reactor.run()
客户端
开始连接
已经连接.
请输入要发送给服务器的消息hi
您好!欢迎您的登录,再见!
[Failure instance: Traceback (failure with no frames): <class 'twisted.internet.error.ConnectionDone'>: Connection was closed cleanly.
]==>连接丢失!