- import threading,socket
- class Debug():
- dbswtch = 1
- def out(dbstr):
- if(Debug.dbswtch == 1):
- print(dbstr)
- class Cmd(threading.Thread):
- def __init__(self):
- threading.Thread.__init__(self, None)
- def menu(self):
- print("you can input:")
- print(" debug on")
- print(" debug off")
- print(" see debug")
- print(" exit")
- def run(self):
- self.menu()
- while(True):
- cmd = input()
- if(cmd == "debug on"):
- Debug.dbswtch = 1
- elif(cmd == "debug off"):
- Debug.dbswtch = 0
- elif(cmd == "see debug"):
- if(1 == Debug.dbswtch):
- print("debug on")
- else:
- print("debug off")
- elif(cmd == "exit"):
- exit(1)
- else:
- self.menu()
- return
- class TcpClient(threading.Thread):
- def __init__(self, c_socket, c_address):
- threading.Thread.__init__(self, None)
- self.socket = c_socket
- self.address = c_address
- Debug.out(("connect in %s" % str(c_address)))
- def run(self):
- while(True):
- data = self.socket.recv(1024)
- Debug.out(("recieve data:%s" % str(data)))
- if(len(data) > 0):
- try:
- self.socket.send(data)
- except:
- Debug.out(("recieve data error from %s" % str(self.address)))
- break
- else:
- self.socket.close()
- Debug.out(("%s connection close" % str(self.address)))
- break
- class TcpServer:
- def __init__(self):
- s_socket = socket.socket()
- s_socket.bind(('', 20001))
- s_socket.listen(10)
- print("ok2")
- while(True):
- print("ok3")
- c_socket,c_address = s_socket.accept()
- Debug.out("someone call me")
- c_thread = TcpClient(c_socket, c_address)
- c_thread.start()
- def main():
- cmd = Cmd()
- cmd.start()
- print("ok1")
- tcps = TcpServer()
- if __name__ == "__main__":
- main()
python可控制的tcp服务器
最新推荐文章于 2024-05-01 12:30:00 发布