요컨대

요컨대

내 시스템에 생성된 일부 네트워크 포트에 일부 데이터를 입력하고 이를 수동으로 수행하고 싶다고 가정해 보겠습니다. 파일 시스템에 이를 위한 인터페이스가 있습니까?
어쩌면 특별한 유형의 파일에 쓸 수 있을까요? 그렇지 않다면 어떻게 작동합니까?

(비록 제가 이 질문을 하는 것이 우스꽝스럽게 들릴 수도 있고 전혀 말이 되지 않더라도 이 주제에 대한 좋은 기사에 대한 링크를 기꺼이 받아들이겠습니다.)

답변1

요컨대

cat파일에 쓰기를 사용하고 네트워크를 통해 전송하는 것과 같이 설명하는 작업을 어떻게든 수행할 수 없습니다 . 그러나 이를 수행할 수 있는 도구가 있습니다. socat netcat또는 socatsocat(더 유연하지만 약간 더 지저분함)을 살펴보는 것이 좋습니다 . 둘 다 배포 저장소에 있을 수 있습니다.

설명하다

Linux에서 IP 소켓은 사용자 공간에 존재하며 파일 시스템 자체에는 파일이 없습니다.

이를 시연하기 위해 다음을 실행했습니다 $ lsof -i :15115(포트 15115는 Skype와 연결되어 있음).

COMMAND  PID     USER   FD   TYPE  DEVICE SIZE/OFF NODE NAME
skype   3836 eightbit   43u  IPv4 9020794      0t0  TCP *:15115 (LISTEN)
skype   3836 eightbit   44u  IPv4 9020795      0t0  UDP *:15115 

따라서 프로세스에는 3836TCP 소켓에 대해 번호가 지정된 파일 설명자가 있습니다("u"는 파일이 r+w 권한으로 열려 있음을 의미함).4315115

따라서 이렇게 하면 다음과 같은 $ ls -l /proc/3836/fd/43 && file /proc/3836/fd/43결과를 얻습니다.

lrwx------ 1 eightbit eightbit 64 Sep 26 00:37 /proc/3836/fd/43 -> socket:[9020794]
/proc/3836/fd/43: broken symbolic link to socket:[9020794]

보시다시피 소켓이 없습니다.진짜하나의 문서.

관련 정보