1、twistedserver.py文件
from twisted.internet import protocol, reactor
class Echo(protocol.Protocol):
def dataReceived(self, data):
xx = '服务器说:%s' % data.decode()
self.transport.write(xx.encode('utf-8'))
print(xx)
def connectionMade(self):#只要建立连接成功就会调用此方法
ip = self.transport.getHost()#本机端口
ip_port = self.transport.getPeer()#远端端口
print(ip,ip_port)
xx = "欢迎%s的来访,你的端口号:%s" % (ip_port.host,ip_port.port)
self.transport.write(xx.encode('utf-8'))
def connectionLost(self, reason):
print("connection lost")
class EchoFactory(protocol.Factory):
def buildProtocol(self, addr):
return Echo()
reactor.listenTCP(9999, EchoFactory())
reactor.run()
2、client1.py文件
import socket
'''客户端'''
client=socket.socket()
client.connect(('localhost',9999))
while True:
cmd=input("(quit退出)>>").strip()
if len(cmd)==0:
continue
if cmd=="quit":
break
client.send(cmd.encode())
cmd_res=client.recv(1024)
print(cmd_res.decode())
client.close()
3、在VS code启动调试twistedserver.py文件,在CMD中运行client1.py文件
如果报错,如下图:?
?解决方案:
pip install service_identity
再运行就行了
?服务器这边同步接收数据,客户端那边迟一步接收数据。
|