Skip to content

JangAyeon/network-programming

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 

Repository files navigation

Network Programming 실습 프로젝트

Python의 socket 모듈을 활용한 네트워크 프로그래밍 실습 프로젝트입니다. TCP/IP 소켓 프로그래밍의 기본 개념을 학습하고 실제 동작하는 네트워크 애플리케이션을 구현합니다.

📚 프로젝트 구조

network programming/
├── 1. ftp-tcp-socket/          # TCP 소켓 파일 전송 실습
├── 2. port-scanner-socket/      # 포트 스캐너 실습
└── readme.md                    # 이 파일

🎯 실습 목표

이 프로젝트를 통해 다음을 학습할 수 있습니다:

  • TCP/IP 소켓 프로그래밍 기초
  • 클라이언트-서버 통신 모델
  • 네트워크 프로그래밍 실무 기법
  • 포트 스캐닝과 네트워크 진단

📖 챕터별 실습 내용

1️⃣ FTP TCP Socket 파일 전송

📍 위치: 1. ftp-tcp-socket/

실습 내용

TCP 소켓을 사용하여 클라이언트에서 서버로 파일을 전송하는 시스템을 구현합니다.

학습 내용

  • ✅ TCP 소켓 생성 및 연결 (socket(), bind(), listen(), accept(), connect())
  • ✅ 클라이언트-서버 통신 구조 이해
  • ✅ 파일 데이터를 네트워크로 전송하는 방법
  • ✅ 청크 단위 데이터 전송 (1024바이트)
  • ✅ 여러 클라이언트 연결 처리
  • ✅ 소켓 통신을 통한 파일 전송 프로토콜 구현

할 수 있게 되는 것

  • TCP 소켓을 사용한 네트워크 통신 프로그램 작성
  • 클라이언트와 서버 간 파일 전송 시스템 구축
  • 네트워크를 통한 데이터 스트림 처리
  • 소켓 프로그래밍의 기본 패턴 이해

상세 내용 보기

👉 1. ftp-tcp-socket/README.md 에서 자세한 사용법과 코드 설명을 확인하세요.


2️⃣ Port Scanner Socket

📍 위치: 2. port-scanner-socket/

실습 내용

TCP 소켓을 활용하여 특정 호스트의 열린 포트를 검색하는 포트 스캐너를 구현합니다.

학습 내용

  • connect_ex()를 사용한 포트 연결 시도
  • ✅ 포트 스캔의 기본 원리와 동작 방식
  • ✅ TCP 3-way handshake 이해
  • ✅ DNS 조회 및 호스트 이름 변환 (gethostbyname())
  • ✅ 에러 코드를 통한 연결 상태 확인
  • ✅ 네트워크 진단 도구 구현

할 수 있게 되는 것

  • 포트 스캐너 프로그램 작성
  • 네트워크 호스트의 포트 상태 확인
  • TCP 연결 상태 진단
  • 네트워크 보안 및 진단 도구 개발 기초

상세 내용 보기

👉 2. port-scanner-socket/README.md 에서 자세한 사용법과 코드 설명을 확인하세요.


🚀 시작하기

사전 요구사항

  • Python 3.x
  • 기본적인 Python 프로그래밍 지식
  • 네트워크 기본 개념 이해 (TCP/IP, 포트, 소켓)

실습 순서 추천

  1. 1. ftp-tcp-socket 부터 시작하세요

    • TCP 소켓의 기본 개념을 학습합니다
    • 클라이언트-서버 통신의 기본 패턴을 이해합니다
  2. 2. port-scanner-socket 을 진행하세요

    • 포트 스캔의 원리를 학습합니다
    • 네트워크 진단 도구를 구현합니다

⚠️ 중요 안내

법적 및 윤리적 고려사항

  • 포트 스캐너 사용 시 주의: 허가 없이 다른 사람의 시스템을 스캔하는 것은 불법일 수 있습니다
  • 자신의 시스템이나 명시적으로 허가를 받은 시스템만 스캔하세요
  • 교육 및 학습 목적으로만 사용하세요

실습 환경

  • 로컬 호스트(127.0.0.1)에서 테스트하는 것이 가장 안전합니다
  • 방화벽이나 보안 소프트웨어가 동작을 차단할 수 있습니다

📚 학습 포인트 요약

공통 학습 내용

  1. 소켓 프로그래밍

    • 소켓 생성 및 설정
    • 연결 관리 (연결, 수락, 종료)
    • 데이터 송수신
  2. 네트워크 통신

    • TCP/IP 프로토콜 이해
    • 클라이언트-서버 모델
    • 네트워크 주소 및 포트
  3. 실무 기법

    • 에러 처리
    • 타임아웃 설정
    • 성능 최적화

🔗 관련 자료

각 챕터의 README 파일에서 다음 정보를 확인할 수 있습니다:

  • 상세한 사용 방법
  • 코드 설명 및 동작 원리
  • 테스트 방법
  • 개선 가능한 사항
  • 추가 학습 자료

각 챕터의 상세한 내용은 해당 디렉토리의 README.md 파일을 참고하세요! 📖

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages