**HMN-win32: Windows Net API용 패키지 **
돕다
ddffsd Parts of this document were translated by machine (Gpt3.5)
Backwards compatible to node6.14.2 but the precompiled version is only supported to node8 and above (because node6 has no asynchronous syntactic sugar), for node6 please compile to node6.14.2 with esbuld yourself
HMN은 HMC-WIN32의 하위 분기입니다. HMC와 달리 HMN은 네트워크 관련 API만 처리합니다.
프로그래밍 도움말(중국어) 도움말(영어) CPP(출처)
설치
전화하는 방법
let HMN = require ( "hmn-win32" ) ;
console . log ( "net:getConnectNetList=>" , hmn . getConnectNetList ( ) [ 0 ] )
TypeScript에서는
import HMC = require ( "hmn-win32" ) ;
기능 개요
API 중간층
- 참조 변환
- bool 부울 콘텐츠를 안전한 부울 유형으로 변환합니다.
- 문자열은 텍스트/의사 텍스트 콘텐츠를 안전한 텍스트로 변환합니다.
- int는 숫자/의사 숫자 내용을 안전한 int 숫자로 변환합니다.
- 모든 레지스트리의 HKEY HKEY 개체
- 수면 비동기 차단
- HMN.node를 직접 연결하는 기본 방법(권장되지 않음)
API
- ipv4는 LAN의 IP(v4)를 가져옵니다.
- ip LAN(어댑터, v4, v6)의 IP를 가져옵니다.
- **adapterIP **근거리 통신망(어댑터, v4, v6)의 IP를 가져옵니다.
- AdapterIPAsync는 근거리 통신망(어댑터, v4, v6)의 IP를 가져옵니다. [비동기 비동기]
- public_ip는 로컬 공용 네트워크 IP를 가져옵니다 . [비동기 비동기]
- getNetParams는 호스트 네트워크 정보를 가져옵니다.
- getNetParamsAsync는 호스트 네트워크 정보를 가져옵니다.
- freePort는 TCP 사용 가능 포트(서비스)를 얻습니다. [비동기 비동기]
- freePortTCP는 무료 TCP 포트를 얻습니다 . [비동기 비동기]
- freePortUDP는 무료 UDP 포트를 얻습니다 . [비동기 비동기]
- hasPortUDP는 이 UDP 포트가 사용 가능한지 확인합니다 . [비동기 비동기]
- hasPortTCP는 이 TCP 포트가 유휴 상태인지 확인합니다 . [비동기 비동기]
- getSystemProxyServer 시스템 프록시 링크를 가져옵니다(시스템 프록시가 활성화된 경우에만).
- getSystemProxyPac 시스템 프록시 pac 스크립트 링크를 가져옵니다.
- getDomainIPaddress는 기본 DNS(네트워킹)에서 도메인 이름 호스트 IP를 확인합니다.
- getDomainIPaddressAsync는 기본 DNS(네트워킹)에서 도메인 이름 호스트 IP를 확인합니다. [비동기 비동기]
- getHostsPath는 호스트 파일의 경로를 가져옵니다.
- getTCPv6PortProcessID는 이 포트가 점유된 프로세스를 가져옵니다.
- getUDPv6PortProcessID 이 포트가 점유된 프로세스를 가져옵니다.
- getUDPv4PortProcessID 이 포트가 점유된 프로세스를 가져옵니다.
- getTCPv4PortProcessID는 이 포트가 점유된 프로세스를 가져옵니다.
- getTCPv6PortProcessIDAsync는 이 포트가 점유된 프로세스를 가져옵니다 . [비동기 비동기]
- getUDPv6PortProcessIDAsync는 이 포트가 점유된 프로세스를 가져옵니다 . [비동기 비동기]
- getUDPv4PortProcessIDAsync는 이 포트가 점유된 프로세스를 가져옵니다 . [비동기 비동기]
- getTCPv4PortProcessIDAsync는 이 포트가 점유된 프로세스를 가져옵니다. [비동기 비동기]
- getConnectNetList는 이 컴퓨터에 있는 포트 ipv4 및 ipv6의 TCP 및 UDP 포트 정보를 열거합니다.
- getConnectNetListAsync는 이 컴퓨터에 있는 포트 ipv4 및 ipv6의 TCP 및 UDP 포트 정보를 열거합니다. [비동기 비동기]
- killProcess는 pid 프로세스를 종료합니다(낮은 권한, 높은 권한으로 종료해야 하는 경우 hmc-win32를 사용하세요)
- 수면 동기화 차단(프로세스)
- 수면 비동기 차단(프로세스)
- PortWatchdog은 포트 변경을 감지하고 포트가 닫히거나 활성화되면 콜백을 시작합니다.
- getProcessidFilePath는 프로세스 실행 파일 위치를 가져옵니다.
- getProcessidFilePathAsync는 프로세스 실행 파일 위치를 가져옵니다 . [비동기 비동기]
- isAdmin은 현재 소프트웨어에 관리자 권한이 있는지 확인합니다.
재구축
HMC의 모든 API는 winapi + nodeapi를 사용하여 구현되므로 다시 컴파일할 필요가 없습니다(node6.14.2는 node8 이상 환경에서 실행이 허용되며 소스 코드를 수정해야 하는 경우 자체적으로 esbuld로 컴파일해야 함). , 컴파일하려면 node-gyp rebuild 사용하세요. 이를 위해서는 특정 C/C++ 기반이 필요하며 node-gyp를 컴파일 도구로 사용해야 합니다.
- 노드-gyp
- Visual Studio 2019(또는 다른 버전)
위험 알림
각 기능 모듈은 프로세스 충돌 없이 천 번 이상 호출됩니다.
API는 js를 통해 엄격하게 트랜스코딩되었으며 네이티브를 호출할 때만 필요합니다. 하지만 C++와 C 언어 모두 엄격한 형식을 사용하므로 형식을 엄격하게 전달하려면 typeScript를 엄격하게 사용해야 합니다.
피로 테스트를 거쳤지만 여전히 예상치 못한 프로세스 충돌이 발생할 수 있으므로 하위 프로세스에서 실행하는 것이 좋습니다.
C++의 와일드 포인터와 널 포인터, 메모리 오버플로, 참조 오류, 유형 오류 등은 모두 프로세스에 치명적이므로 새로운 함수를 작성할 때 지속적으로 시뮬레이션 피로 테스트를 수행해야 합니다.