vlc 미디어 플레이어에 대한 제어 명령을 릴레이하기 위해 socat / netcat으로 UDP-TCP 브리지 생성

미하이 포 페스 쿠

UDP-포트에서 수신해야합니다. TCP-서버에 연결해야합니다.

나는 시도 netcat하고 socat.

nc -v -u -l -p 3333 | nc -v 127.0.0.1 50000

socat -v UDP-LISTEN:3333,fork TCP:localhost:50000

둘 다 작동합니다-그들은 메시지를 전달했지만 라인은 끝나지 않았습니다. VLC는 netcat / socat을 닫을 때만 명령을받습니다.

나는 연결을 모니터링했고 sockettest메시지는 다음과 같이 같은 줄에 차례로 있습니다.

playpausestopexitadd

전송 된 메시지가 다음과 같이 보이도록 끝낼 줄이 필요합니다.

play
stop
exit
add

패킷이 끝나지 않았을까요?

경우에 궁금 nc하거나 socat일정 시간 후 패킷 / 끝 라인을 보낼 수있는 옵션이 있습니다.

\n@roaima가 제안한대로 출력에 추가 play\nstop\nplay\n하면 한 줄에 표시됩니다.

스테판 샤젤 라스

UDP 패킷을 보내는 것이 명령에 줄 바꿈 문자를 추가하지 않기 때문에 문제가 더 많다고 생각합니다 ( "play\n"단지 보내야하는 것처럼 "play").

어쨌든 각 UDP 패킷에 대해 새 TCP 연결을 만들려면 in udp-recvfrom대신 사용해야 합니다 .udp-listensocat

socat -u udp-recvfrom:3333,fork tcp:localhost:50000

그런 다음 모든 UDP 패킷은 패킷의 내용을 보내기 위해 가져온 다음 닫히는 하나의 TCP 연결을 트리거해야합니다.

다음을 수행하여 테스트하십시오.

echo play | socat -u - udp-sendto:localhost:3333

(페이로드에 5 바이트가 포함 된 UDP 패킷을 보냅니다 "play\n").

이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.

침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제

에서 수정
0

몇 마디 만하겠습니다

0리뷰
로그인참여 후 검토

관련 기사

Related 관련 기사

뜨겁다태그

보관