젠킨스에서 OS X의 포트 할당 문제를 디버깅하려고 시도했는데, 넷켓으로 특정 포트를 청취하여 이상한 결과를 초래했습니다. 2 단자에이어서왜 OS X은 동일한 TCP 포트에서 두 번 청취 할 수 있습니까?
$ uname -rs
Darwin 12.2.1
$ nc -l 54321
: X 10.8.2 OS에 단말기에서
는
$ nc -l 54321
및 제 3 단자에
,lsof
는 두 경우를 도시 동일한 포트에 바인딩 됨 :
$ lsof -i | grep 54321
nc 70706 chris 3u IPv4 0x55618c024692f4d1 0t0 TCP *:54321 (LISTEN)
nc 70769 chris 3u IPv4 0x55618c0232cb8661 0t0 TCP *:54321 (LISTEN)
리눅스에 617,451,515,
:
제 1 터미널 :
$ uname -rs
Linux 3.2.0-34-generic
$ nc -l 54321
제 2 터미널 :
$ nc -l 54321
nc: Address already in use
왜 OS X는 주소가 이미보고하지 않습니다 용도?
'lsof -i' 출력 구문을 모르지만'0x55618c024692f4d1'과'0x55618c0232cb8661'은 무엇입니까? 그것이 IP 주소 인 경우, 청취자가 "임의"주소가 아닌 특정 IP 주소에 바인딩 되었기 때문에 분명합니다. – CodeCaster
그들은 의미없는 메모리 주소입니다. 그들이 가지고있는 유일한 목적은 이들이 두 개의 구별되는 소켓 (예 :'fork()'또는'dup()'의 결과가 아님)을 식별하는 것입니다. – duskwuff
'lsof -i'를 실행하면 해당 필드 ("DEVICE")에 27 개의 고유 한 값이 부여됩니다. 메모리 주소라고 생각합니다. 마지막 열은 소켓이'*'에 묶여 있음을 보여준다. –