Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

3 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

UDP Test Server

UDP 패킷을 수신하고 상세하게 로깅하는 Go 기반 서버입니다.

주요 기능

  • 지정된 포트에서 UDP 패킷 수신
  • 패킷 데이터를 16진수 덤프 형식으로 출력
  • 송신자별 통계 추적 (패킷 수, 총 바이트, 평균 패킷 크기)
  • 콘솔 및 파일 로깅 지원
  • Graceful Shutdown 지원 (Ctrl+C)

요구사항

  • Go 1.24.5 이상

설치

git clone <repository-url>
cd udp-test

사용법

기본 실행 (포트 3000)

go run main.go

커스텀 포트 지정

go run main.go -port 8080

파일 로깅 활성화

go run main.go -file udp.log

콘솔 출력 비활성화

go run main.go -console=false -file udp.log

명령행 옵션

옵션 기본값 설명
-port 3000 UDP 수신 포트
-file "" 로그 파일 경로 (지정하지 않으면 콘솔만 출력)
-console true 콘솔 출력 활성화 여부

출력 형식

패킷 정보

================================================================================
📦 Packet #1 | Timestamp: 2025-10-20 09:06:15.123
📍 Sender: 127.0.0.1 (Port: 54321)
📊 Size: 11 bytes | Total from this sender: 1 packets, 11 bytes
================================================================================
0000: 48 65 6c 6c 6f 20 57 6f 72 6c 64              |Hello World|

종료 시 송신자 요약

프로그램 종료 시 (Ctrl+C) 각 송신자별 통계를 출력합니다:

================================================================================
📊 SENDER SUMMARY
================================================================================

📍 Sender: 127.0.0.1
   First seen: 2025-10-20 09:06:15
   Last seen:  2025-10-20 09:06:30
   Duration:   15s
   Packets:    10
   Total bytes: 110
   Avg packet size: 11 bytes
================================================================================

테스트

프로젝트에는 다양한 유형의 UDP 패킷을 전송하는 테스트가 포함되어 있습니다.

테스트 실행 방법

  1. 터미널 1에서 서버 시작:
go run main.go -port 8080
  1. 터미널 2에서 테스트 실행:
go test -v

포함된 테스트

  • TestSendSimpleText - 간단한 텍스트 전송
  • TestSendBinaryData - 바이너리 데이터 전송
  • TestSendLargeData - 큰 데이터 전송 (2KB)
  • TestSendMixedContent - 혼합 콘텐츠 (텍스트 + 바이너리)
  • TestSendJSONData - JSON 데이터 전송
  • TestSendVeryLargeData - 매우 큰 데이터 전송 (5KB)
  • TestSendMultiplePackets - 여러 패킷 순차 전송

빌드

실행 파일 생성:

go build -o udp-server
./udp-server -port 8080

사용 예시

예시 1: 기본 모니터링

go run main.go

예시 2: 프로덕션 환경 (파일 로깅만)

go run main.go -port 9000 -file /var/log/udp-packets.log -console=false

예시 3: 디버깅 (콘솔 + 파일)

go run main.go -port 8080 -file debug.log -console=true

기술적 세부사항

  • 최대 UDP 패킷 크기: 65535 바이트
  • 패킷 버퍼 채널 크기: 100 패킷
  • 동시성: Goroutine을 사용한 비동기 패킷 수신
  • 16진수 덤프: 16바이트/라인, ASCII 표현 포함

라이선스

이 프로젝트의 라이선스는 LICENSE 파일을 참조하세요.

About

udp listen test

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages