몇 가지 성능 테스트를 실행 중이고 동일한 파일을 소켓에 반복적으로 보내려고 합니다.
내가 다음과 같은 일을 한다면:
$ socat -b1048576 -u OPEN:/dev/zero TCP4-LISTEN:9899,reuseaddr,fork
$ socat -b1048576 -u TCP:127.0.0.1:9899 OPEN:/dev/null
그런 다음 1MB 버퍼는 iftop
20Gbps를 추진하고 있음을 알려줍니다.
그러나 내가 정말로 하고 싶은 일은 다음과 같다.
$ 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'