답변1
소켓을 열면소켓, 이는 socket:[5474494]
출력( )에 파일 설명자 3으로 나열되어 있는 것을 볼 수 있습니다. 다른 세 가지 파일 설명자는 표준 입력, 출력 및 오류 설명자이며 모든 프로세스에 대해 기본적으로 열립니다. 귀하의 경우 이는 프로그램이 실행 중인 터미널을 가리키므로 파일 설명자에 쓸 때 "surni"가 표시됩니다.
소켓에 쓰려면 적절한 메커니즘을 사용해야 합니다(예: netcat
다른 방향).
echo Hello | nc localhost 9999
또는 Bash를 사용하는 경우:
echo Hello > /dev/tcp/localhost/9999
그러나 다른 포트를 사용하여 포트 9999에 연결을 설정한 것으로 나타나므로 netcat
이는 실제로 귀하의 경우에 적용되지 않습니다. 설정된 연결을 사용해야 합니다...
nc
다른 프로세스에 입력 소켓을 제공하는 장기 실행 수단을 기대하는 경우 설정해야 합니다.예를 들어FIFO 사용:
mkfifo socket-input
nc localhost 9999 < socket-input
echo Hello > socket-input