socat/ncat을 통해 파일 내용을 소켓에 반복적으로 보내는 방법

socat/ncat을 통해 파일 내용을 소켓에 반복적으로 보내는 방법

몇 가지 성능 테스트를 실행 중이고 동일한 파일을 소켓에 반복적으로 보내려고 합니다.

내가 다음과 같은 일을 한다면:

$ socat -b1048576 -u OPEN:/dev/zero TCP4-LISTEN:9899,reuseaddr,fork 
$ socat -b1048576 -u TCP:127.0.0.1:9899 OPEN:/dev/null

그런 다음 1MB 버퍼는 iftop20Gbps를 추진하고 있음을 알려줍니다.

그러나 내가 정말로 하고 싶은 일은 다음과 같다.

$ socat -b1048576 -u OPEN:somefile.dat TCP4-LISTEN:9899,reuseaddr,fork 
$ myprog TCP:127.0.0.1:9899 > /dev/null

그런데 한 번만 밀리고 정말 처음까지 밀고 다시 보내고 somefile.dat싶어요 .rewind()

답변1

모든 새로운 연결에서 동일한 파일을 열고 전송한다고 가정하면 다음과 같이 -U의 반대 방향 -u과 반전된 주소를 사용할 수 있습니다.

socat -b1048576 -U TCP4-LISTEN:9899,reuseaddr,fork OPEN:somefile.dat
socat TCP:127.0.0.1:9899 - >/dev/null

파일을 복제하고 싶다면무기한, 다음과 같이 사용할 수 있습니다.

socat -b1048576 -U TCP4-LISTEN:9899,reuseaddr,fork SYSTEM:'while cat somefile.dat;do \: ;done'

관련 정보