안녕하세요. 명월입니다.
이번 포스팅에서는 파일 다운로드 서버 소켓이랑 클라이언트 소켓 부품을 만들어 보도록 하겠습니다.
서버와 클라이언트 프로젝트를 분리해서 생성하였습니다.
그럼 먼저 서버 소켓 부터 확인 해 보도록 하겠습니다.
먼서 소켓으로 부터 상속 받았습니다.
그리고 서버를 접속하면 그 하위 운용소켓을 선언하였습니다.( 현재 상태로는 다중 접속은 불가능 합니다. 다중 선택이 가능하게 하려면 위 m_SubServer 를 배열로 놓고 그 배열을 관리하는 매소드도 필요합니다.)
생성자는 우리가 기본적으로 사용하는 것은 미리 다 선언해 버리고 포트만 받고 대기하게 처리하겠습니다.
Accept 함수는 클라이언트 접속 대기를 하는 함수 입니다. 현재 이 부분은 종료처리를 하지 않았기 때문에 대기 상태에 프로그램을 종료하면 완전히 종료가 되지 않는 버그가 있습니다.
즉 종료처리 부분을 작성해야 하는데 아직 작성하지 못했습니다.
밑 Send 메소드는 메시지의 데이터 길이까지 전송하여 메시지가 밀리는 버그(?)를 해결하도록 하였습니다.
위는 파일을 전송하기 위한 메소드 입니다.
메시지를 받는 부분입니다.
서버 단에서는 파일을 받는 부분 즉 클라이언트에서 업로드 하는 부분은 없습니다. 그래서 파일 받는 메소드는 작성하지 않았습니다.
다음은 클라이언트 부품을 확인 하겠습니다.
서버에서는 그냥 지나쳤는데 위에 System.Net 과 System.Net.Sockets 를 선언해야 합니다.
아래 생성자는 서버와 다르게 IPEndPoint 를 적용하고 Connect 를 하겠습니다.
메시지 수신 메소드 입니다.
클라이언트 부분에서는 파일 수신 메소드를 생성해야 겠습니다.
********************** 수정 2013 - 02 - 25*************************
제가 오늘 점심때 블로그확인 하다가 틀린점을 하나 찾았네요... 클라이언트의 이 부분은 사용하지 않는 메소드 입니다. 버그 수정해 나가다가 이 부분을 빼 버렸습니다
************************************************************************
여기까지 부품 설명이었습니다.
다음 포스팅에서는 서버폼을 조립하겠습니다.
링크 - [C#] 파일 다운로드 예제 소스
'Development note > C#' 카테고리의 다른 글
[C#] 비동기 소켓 채팅 프로그램 - 클라이언트 편 (10) | 2013.09.29 |
---|---|
[C#] 비동기 소켓 채팅 프로그램 - 서버편 (7) | 2013.09.28 |
[C#] 파일 다운로드 예제 - 클라이언트 폼, 메인 폼 초기화, 이벤트 (0) | 2013.02.27 |
[C#] 파일 다운로드 예제 - 서버 폼 초기화, 이벤트 (0) | 2013.02.26 |
[C#] 파일 다운로드 예제- 화면 설계 (2) | 2013.02.24 |
[C#] AxWebBrowser 로 자동 로그인 소스 (웹 스크래핑) (9) | 2012.10.23 |
[C#] 확장형 브라우져 컨트롤 AxWebBrowser Extended Browser control(확장형 webbrowser) (5) | 2012.10.22 |
[C#] 웹서버 개발하기 (0) | 2012.10.15 |