Python 은 Appium 포트 검 측 과 방출 의 실현 을 실현 합 니 다.
포트 가 점용 되 었 는 지 확인 하기 위해 서 인용 할 socket 모듈 입 니 다.
1.1 socket 은 무엇 입 니까?
한 마디 로 네트워크 의 두 프로그램 은 하나의 양 방향 통신 연결 을 통 해 데이터 교환 을 실현 하 는데 이 연결 의 한 끝 을 하나의 socket 이 라 고 부른다.네트워크 통신 연결 을 만 들 려 면 최소한 한 쌍 의 포트 번호(socket)가 필요 합 니 다.
1,2 socket 의 본질은 무엇 입 니까?
socket 본질은 프로 그래 밍 인터페이스(API)입 니 다.TCP/IP 에 대한 패 키 징 입 니 다.TCP/IP 도 프로그래머 가 네트워크 개발 에 사용 할 수 있 는 인 터 페 이 스 를 제공 해 야 합 니 다.이것 이 바로 Socket 프로 그래 밍 인터페이스 입 니 다.
socket 의 통신 원리 에 대하 여 우 리 는 참고 할 수 있다socket 통신 원리.
socket 모듈 내용 에 대하 여 우 리 는 참고 할 수 있 습 니 다python socket 모듈 문서
우 리 는 코드 를 올 려 포트 가 사용 되 었 는 지 확인 하 는 방법 을 보 았 다.
# -*- coding: utf-8 -*-
"""
@ auth : carl_DJ
@ time : 2020-7-7
"""
import socket
def check_port(host,port):
" "
# socket
s = socket.socket(socket.AF_INET,socket.SOCK_STREAM)
try:
s.connect((host,port))
s.shutdown(2) #
except OSError as msg:
print("port %s is available !" %port)
print(msg)
return True
else:
print("port %s already in use! " %port)
return False
if __name__ == '__main__':
host = '127.0.0.1'
prot = 4723
check_port(host,prot)
여기 주의 하 세 요.shutdown(self,flag):한 Socket 에서 데 이 터 를 수신 하고 보 내 는 것 을 금지 합 니 다.
shutdown()함 수 를 이용 하여 양 방향 데이터 전송 을 단 방향 데이터 전송 으로 바 꿉 니 다.
인자:
>0 장래에 읽 는 것 을 금지한다.
>1 장래에 쓰 는 것 을 금지한다
>2 앞으로 읽 기와 쓰 기 를 금지 한 다 는 뜻 이다.
코드 실행 결 과 를 살 펴 보 겠 습 니 다.
아래 그림 상태 와 같이 서버 가 이 포트 서 비 스 를 열지 않 았 기 때문에 이 포트 는 사용 할 수 있 습 니 다!
2.방출 포트
만약 포트 가 점용 된다 면,우 리 는 그것 을 풀 어야 한다.
그럼 포트 를 어떻게 풀 어 요?
두 가지 방법 이 있다.
1.cmd 창 방출 포트;
2.python 코드 방출 포트.
2.1 cmd 방출 포트
1.먼저 우리 가 필요 로 하 는 포트 번 호 를 찾 습 니 다.
netstat -aon | findstr "5037"
2.포트 번 호 를 통 해 pid 를 찾 은 다음 프로 세 스 를 죽 입 니 다.
taskkill -f -pid 18028
2.2 Python 코드 방출 포트그럼 python 에서 어떻게 이 루어 집 니까?
우 리 는 코드 를 본다.
# -*- coding: utf-8 -*-
"""
@ auth : carl_DJ
@ time : 2020-7-7
"""
import os
def release_port(port):
" "
# pid
cmd_find = 'netstat -ano | findstr %s' %port
print(cmd_find)
#
result = os.popen(cmd_find).read()
print(result)
if str(port) and 'LISTENING' in result:
# pid
i = result.index('LISTENING')
# 'LISTENING' 7
start = i + len('LISTENING') +7
end = result.index('
')
pid = result[start:end]
# pid
cmd_kill = 'taskkill -f -pid %s' %pid
print(cmd_kill)
os.popen(cmd_kill)
else:
print('port %s is available !' %port)
if __name__ == '__main__':
host = '127.0.0.1'
port = 4723
release_port(port)
운행 결과 가 무엇 인지 봅 시다.4723 이 포트 를 사용 할 수 있 음 을 설명 합 니 다.
여기 서 한 마디 더 하 자.
os.open():파 이 프 를 열 어 cmd 콘 솔 에 입력 한 정 보 를 얻 는 것 입 니 다.
더 자세 한 내용 은 참고pyhton 의 os.open()공식 문서
물론 os.open()과 os.system()을 빠르게 알 고 싶다 면
이《시스템 명령 os.system()과 os.open()호출》문장 을 참조 할 수 있다.
파 이 썬 이 Appium 포트 검 측 과 방출 을 실현 하 는 것 에 관 한 이 글 은 여기까지 소개 되 었 습 니 다.더 많은 파 이 썬 Appium 포트 검 측 내용 은 우리 의 이전 글 을 검색 하거나 아래 의 관련 글 을 계속 조회 하 시기 바 랍 니 다.앞으로 많은 응원 바 랍 니 다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
Python의 None과 NULL의 차이점 상세 정보그래서 대상 = 속성 + 방법 (사실 방법도 하나의 속성, 데이터 속성과 구별되는 호출 가능한 속성 같은 속성과 방법을 가진 대상을 클래스, 즉 Classl로 분류할 수 있다.클래스는 하나의 청사진과 같아서 하나의 ...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.