========[개발 IDE]========
비쥬얼 스튜디오 2008
========[개발 언어]========
C#
========[버전]========
v1.2.110207
========[클래스 다이어그램]========
- 메인 패키지
비동기 소켓 구현을 위한 메인 인터페이스
IAsyncStateObject : 비동기 데이터 리시브를 위한 버퍼링 객체
IAdvancedAsyncStateObject : IAsyncStateObject를 확장하여 엔드 패킷 확인 추가
IAsyncSocketClient : 비동기 소켓 클라이언트
IAsyncSocketServer: 비동기 소켓 서버
- Event 패키지
클라이언트, 서버에서 발생하는 이벤트 정의
AsyncSocketAcceptEventArgs: 서버가 클라이언트를 Accept 했을때 발생하는 이벤트
- Impl 패키지
클라이언트 서버 이벤트를 실제로 구현
Default 시리즈 : 기본적인 비동기 소켓을 구현
Advanced 시리즈 : 엔드패킷을 이용하여 데이터 전송 종료 시점을 정확하게 처리
========[설명]========
비동기 형식의 데이터 전송, 수신을 구현한 클라이언트, 서버
서버는 다음과 같은 형태로 사용
private void StartServer()
{
// 서버 생성, 서버포트, 엔드 패킷을 입력
IAsyncSocketServer server = new AdvancedAsyncSocketServer(serverPort, Encoding.UTF8.GetBytes("\r\n"));
// 이벤트 핸들러 설정
server.OnAccept += new SDKNetLib.Event.AsyncSocketAcceptEventHandler(server_OnAccept);
server.OnError += new SDKNetLib.Event.AsyncSocketErrorEventHandler(server_OnError);
server.OnClose += new SDKNetLib.Event.AsyncSocketCloseEventHandler(server_OnClose);
server.OnClientReceive += new SDKNetLib.Event.AsyncSocketReceiveEventHandler(server_OnClientReceive);
server.OnClientClose += new SDKNetLib.Event.AsyncSocketCloseEventHandler(server_OnClientClose);
server.OnClientError += new SDKNetLib.Event.AsyncSocketErrorEventHandler(server_OnClientError);
// 서버 시작
server.Listen();
}
클라이언트는 다음과 같은 형태로 사용
private void InitializeClient()
{
// 클라이언트 생성, 엔드 패킷을 입력
IAsyncSocketClient client = new AdvancedAsyncSocketClient(Encoding.UTF8.GetBytes("\r\n"));
// 이벤트 핸들러 설정
client.OnConnect += new SDKNetLib.Event.AsyncSocketConnectEventHandler(client_OnConnect);
client.OnSend += new SDKNetLib.Event.AsyncSocketSendEventHandler(client_OnSend);
client.OnClose += new SDKNetLib.Event.AsyncSocketCloseEventHandler(client_OnClose);
client.OnError += new SDKNetLib.Event.AsyncSocketErrorEventHandler(client_OnError);
// 연결
client.Connect("서버 아이피", 서버 포트);
}
'네트워크' 카테고리의 다른 글
채팅프로그램 메신저 소스 (0) | 2013.05.14 |
---|---|
c# 비동기 방식의 콜백함수 (0) | 2013.05.14 |
C# TCP 소켓통신 Server (0) | 2013.04.25 |
C# TCP 소켓통신 (0) | 2013.04.25 |
SuperSocket (0) | 2013.04.25 |