codeproject 의 소켓 라이브러리를 이용한 예제를 만들었습니다.
라이브러리에 대한 자세한 설명은 http://www.codeproject.com/Articles/563627/A-full-library-for-a-Socket-Client-Server-system 를 참고하시면 되고, 기본 라이브러리에서 몇가지 수정한 부분이 있습니다.
서버의 기능
1. 접속자 리스트 관리 - 각 개인별로 메시지를 전송할 수 있음
==> 사용자 이름에 마우스 오른쪽 버튼을 클릭하면 [메시지 전송하기] contextmenu 가 있으며,
이것을 이용해서 개별적으로 메시지를 전송할 수 있음
2. [모두에게] 기능을 추가 해서 전체 참석자에게 일괄적으로 메시지를 전송할 수 있음.
3. log4net 라이브러리를 이용해서 폴더에 날짜별로 로그를 쌓을 수 있음
3. log 탭과 message 탭을 따로 두어서, 서버의 작동 상태나 클라이언트의 연결/비연결 상태는 log 탭에
실시간으로 보여주고, 클라이언트와의 메시지 확인은 message 탭에서 확인이 가능함
클라이언트 기능
1. [Launch clients...] 기능을 두어서 multiple 접속이 가능하게 구현해 두었으며, 서버의 상태를 확인
가능함
2. 일반 메시지와 비밀글 기능을 두었음
실행 후
메시지 전송 후
프로그램 작성
codeproject 에서 다운을 받으면 실제적인 라이브러리 프로젝트는 AsyncClientServerLib, BaseClientServerLib, SocketServerLib 3개 입니다.
나머지는 테스트용도 입니다.
여기에 올린 프로그램은 Custom_ClientSock, Custom_ServerSocket 두 개입니다.
테스트 용도라면 아이피 부분만 각자의 환경에 맞게 수정하시면 됩니다.
'C# with TCP/IP' 카테고리의 다른 글
[Program C#] 서버-클라이언트 1:1 통신 (0) | 2015.03.12 |
---|---|
[Program C#] 비동기 접속 - 윈도우폼 (0) | 2015.03.06 |
[Program C#]Client-Server Broadcast 예제 - 콘솔버전 (0) | 2015.02.09 |
[Program C#]Binary Serialization 을 이용한 소켓통신 - 윈도우버전 (0) | 2015.01.31 |
[Program C#]Binary Serialization 을 이용한 소켓통신 - 콘솔버전 (0) | 2015.01.28 |