测试过程中需要设备监听大量tcp端口,然后写了一个多线程启用tcp服务器的脚本。记录一下
# -*- coding: utf-8 -*-
from socket import *
from time import ctime
import threading
import random
class tcp_threading:
def __init__(self):
self.ip = input('请输入监听IP:')
self.ran = input('请输入监听端口数:')
def tcp(self):
tcpSerSock = socket(AF_INET, SOCK_STREAM) # scoket实例化
port = random.randint(1025, 65535)
ip_post = (self.ip, int(port))
tcpSerSock.bind(ip_post)
tcpSerSock.listen(5)
print('正在监听端口:'+str(port)+'\n')
while True:
tcpCliSock, addr = tcpSerSock.accept()
print("连接中 :", addr)
data = tcpCliSock.recv(1024)
if not data:
break
content = '[%s] %s' % (bytes(ctime(), "utf-8"), data)
print(data)
tcpCliSock.send(content.encode("utf-8"))
tcpCliSock.close()
def run(self):
for i in range(int(self.ran)):
thread = threading.Thread(target=self.tcp)
thread.start()
if __name__ == '__main__':
tcp = tcp_threading()
tcp.run()