Appium + Python3 자동 감지 및 방출 포트

# ! / usr / bin / python 부분을 ENV의 
# - * - 코딩 :. UTF-8 - * - 
#의 @time : 2019년 8월 6일 10시 38분 
#의 @author : zhouyang 
#의 @file : check_port.py 
'' ' 
Appium 포트 자동 검출 점유 
종료 (자기 플래그) 수신 소켓에서 데이터를 전송 금지. 종료를 사용하여 () 함수는 양방향 데이터 전송 소켓이 단방향 데이터 전송이 될 수 있습니다 
종료 () 얼마나 가까운 소켓 나타내는 단일 매개 변수가 필요 
하나, 미래에 금지 읽기 : 미래를 쓰기를 금지 나타내는 2 0 : 매개 변수를 : 그 미래 읽기를 금지하고 작성 

Appium 포트는 자동으로 포트가 자동으로 해제, 점령 출시 
'' ' 

가져 오기 소켓
 가져 오기 운영 체제의 

DEF의 check_port (호스트, 포트) :
     ' '' 포트가 점유되어 있는지 여부를 감지하는 '' ' 
    #이 소켓 객체 생성 
    S = 소켓을 .socket (socket.AF_INET, 소켓.

    : 
        S.connect ((호스트, 포트)) 
        s.shutdown ( 2 )
     를 제외하고 MSG AS OSError :
         인쇄 ( ' 사용 가능한 포트는 S % IS ' % 포트)
         인쇄 (MSG)
         반환 진정한
     다른 :
         인쇄 ( ' 포트가 이미 S %이다 사용 ' %의 ) 포트
         돌아 거짓 


DEF의 relase_port (포트) :
     ' '' 지정된 포트 해제 '' ' 
    #는 해당 PID 지정된 포트를 찾기 
    cmd_find = ' 없이 netstat -aon | 회사 FINDSTR의 %의 S '% 포트
     인쇄 (cmd_find)는 

    #이 명령의 실행 결과를 반환 
    결과 = 일은 os.popen (cmd_find) .read ()
     인쇄 (결과) 

    IF STR (포트)  ' 듣기 '  결과 :
         #은 포트에 해당하는 프로세스의 PID를 받기 
        전 = (result.index ' 듣기 ' ) 
        시작 = 내가 렌 (+ ' 듣기 ' +7) 
        종료 = result.index ( ' \ N- ' ) 
        PID = 결과 [시작, 종료] 

        #은 포트는 PID를 차지 닫기
        cmd_kill = ' 에서 taskkill -f -pid % S ' % PID
         출력 (cmd_kill) 
        일은 os.popen (cmd_kill) 
    다른 :
         인쇄 ( " 포트 %의 (S)가 제공 ' %의 포트) 


경우  __name__ == ' __main__ ' : 
    호스트 = ' 127.0. 0.1 ' 
    포트 = 4725
     #의 check_port (호스트 포트) 
    relase_port (포트)

 

추천

출처www.cnblogs.com/xiuxiu123456/p/11322431.html