Linux에서 대화형 TCP/UDP 서버를 만드는 방법이 있습니까?

Linux에서 대화형 TCP/UDP 서버를 만드는 방법이 있습니까?

다음과 같은 도구가 필요합니다.이것("TCP 테스트 도구"라고 함)(Linux용). GUI(예: GUI/CLI - 그다지 중요하지 않음)는 필요하지 않지만 모든 포트에서 수신할 수 있고 수신할 수 있는 GUI를 생성할 수 있어야 합니다.그리고원시 데이터(예:16진수 덤프) 데이터.

답변1

노력하다nc

~에서man nc

CNC— 임의의 TCP 및 UDP 연결 및 수신

답변2

소캇거의 모든 것을 다른 거의 모든 것과 양방향으로 연결할 수 있는 정교한 도구입니다. 특히 포트에서 연결을 수신하고, 연결되면 프로그램을 실행하고, 데이터를 보내고, 출력을 소켓으로 반환하도록 할 수 있습니다. 예를 들어:

socat TCP4-LISTEN:3344,reuseaddr,fork  EXEC:/tmp/runme,pty

/tmp/runme다음과 같은 스크립트를 실행합니다 .

#!/bin/bash
trap 'echo sigterm >&2;exit' TERM
echo "start" >&2
while read line
do  echo "got $line"
done

여기서는 접두사 "got"을 사용하여 데이터를 반환하는 것처럼 그 안에 있는 데이터로 원하는 것은 무엇이든 할 수 있습니다. 다음을 사용하여 테스트할 수 있습니다 telnet localhost 3344.

echo hi | socat - TCP4:localhost:3344

udp로 동일한 작업을 수행해야 하는 경우 다음과 같이 시도해 볼 수 있습니다.

socat UDP-RECVFROM:3344,fork  EXEC:/tmp/runme,pty

하나의 패킷만 수신하지만 여전히 응답을 받지 못합니다. 다음과 같이 테스트해 보세요.

echo hi | socat - UDP-SENDTO:localhost:3344

데이터를 에코로 얻으려면 이 기능이 내장되어 있으므로 xinetd활성화하기만 하면 됩니다.에코제공하다. 바라보다 man xinetd.conf.

대역폭 통계를 확인하려면 다음을 확인하세요.네트워크 성능도구.

답변3

sendip해당 웹사이트에 관심이 있을 수 있습니다.http://snad.ncsl.nist.gov/ipv6/sendip.html

웹사이트에서:

Q: 문자열 및 숫자 매개변수를 처리하는 방법은 무엇입니까?답변: 많은 헤더 필드와 패킷 데이터 영역은 다음 구문을 사용하여 지정할 수 있습니다.

  • 0xXXXX - 16진수로 해석되며 네트워크 바이트 순서에 따라 이진수로 변환됩니다.
  • 0XXXX - 8진수로 해석되며 네트워크 바이트 순서에 따라 2진수로 변환됩니다.
  • rN - N "임의" 바이트
  • zN - N 널(0)바이트
  • fF - 파일 F의 다음 줄에서 매개변수를 읽습니다.
  • 기타 - 리터럴 문자열로 처리됩니다.

답변4

거기이를 가능하게 하는 socat v.2.0.0.b8용 패치입니다.

관련 정보