C# .NET으로 간단한 HTTP 서버 구현 방법
AI Store에서 AI코딩으로 만들어진 앱을 만나보세요!
지금 바로 방문하기

간단한 C# .NET HTTP 서버 구현

카테고리

프로그래밍/소프트웨어 개발

서브카테고리

웹 개발

대상자

C# 네트워크 프로그래밍 초보자, 웹 서버 구현에 관심 있는 개발자

핵심 요약

  • TcpListener 클래스를 활용해 TCP 통신을 처리하며, AcceptTcpClient() 메서드로 클라이언트 연결 수락
  • HTTP 요청 파싱 후 HTTP/1.1 200 OK 응답을 비동기 방식으로 전송
  • index.html 파일을 서버에서 정적 리소스로 제공하는 방식
  • StreamReaderStreamWriter를 통해 요청/응답 흐름 관리

섹션별 세부 요약

1. 서버 초기 설정

  • TcpListener 인스턴스 생성: IPAddress.Loopback 주소와 9999 포트 사용
  • tcpListener.Start()로 서버 시작, 무한 루프로 클라이언트 연결 대기
  • using으로 리소스 관리 및 예외 처리 강화

2. 클라이언트 요청 처리

  • handler.GetStream()을 통해 TCP 커넥션 스트림 얻기
  • StreamReader로 HTTP 요청 헤더 파싱 (예: GET / HTTP/1.1)
  • string.IsNullOrWhiteSpace(line) 조건으로 요청 라인 분리 및 종료 판단

3. 응답 생성 및 정적 파일 제공

  • HTTP/1.1 200 OK 응답 문자열 생성 및 UTF-8 인코딩
  • 프로젝트 경로 추적을 위해 DirectoryInfoPath.Combine() 사용
  • File.ReadAllText()index.html 내용 읽고, stream.WriteAsync()로 클라이언트에 전송

결론

  • index.html 파일이 프로젝트 폴더에 존재해야 정상 동작
  • 비동기 메서드(WriteAsync) 사용으로 네트워크 I/O 효율성 향상
  • 실무에서는 경로 처리, 에러 핸들링, 멀티스레드 지원이 추가되어야 함