본문 바로가기

네트워크16

c# 비동기 방식의 콜백함수 ================================================================================================= 산만한 분위기 속에서 개념과 흐름을 제대로 잡는데 꽤나 시간이 걸렸다... 하지만.. 이와 관련된 크로스 쓰레딩 기법은 대용량 데이터 load와 같은 기능과 Winform Control의 기능을 분리시켜 안정성을 지킴과 동시에 사용자를 배려한 UI를 제공한다는 면에서 필수적인 것 같다. 그리고 기타 여러 자료들을 찾다가 느낀점인데.... 개발자가 좀 더 비동기 방식의 프로그래밍을 쉽게 할 수 있도록 신경 쓴 MS의 배려(?)도 느낄 수 있었다. ( 예제로 만든 소스의 주석은 MSDN의 내용을 참고함 ) ================.. 2013. 5. 14.
C# 비동기 클라이언트 소켓서버 ========[개발 IDE]========비쥬얼 스튜디오 2008 ========[개발 언어]========C# ========[버전]========v1.2.110207 ========[클래스 다이어그램]======== - 메인 패키지비동기 소켓 구현을 위한 메인 인터페이스 IAsyncStateObject : 비동기 데이터 리시브를 위한 버퍼링 객체IAdvancedAsyncStateObject : IAsyncStateObject를 확장하여 엔드 패킷 확인 추가IAsyncSocketClient : 비동기 소켓 클라이언트IAsyncSocketServer: 비동기 소켓 서버 - Event 패키지클라이언트, 서버에서 발생하는 이벤트 정의 AsyncSocketAcceptEventArgs: 서버가 클라이언트를 A.. 2013. 5. 14.
C# TCP 소켓통신 Server using System;using System.Net;using System.Net.Sockets;using System.Text; namespace ToyServer{ class Class1 { [STAThread] static void Main(string[] args) { //TCP Echo Server //1. 종단점 IPAddress ip = IPAddress.Parse("127.0.0.1"); IPEndPoint endPoint = new IPEndPoint(ip,5000); //2. 수신 소켓 Socket listenSocket = new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp); //3. 바인드 listen.. 2013. 4. 25.
C# TCP 소켓통신 using System;using System.Net;using System.Net.Sockets;using System.Text; namespace ToyClient{ class Class1 { [STAThread] static void Main(string[] args) { try { //TCP Echo Client //1. 종단점 생성 IPAddress ip = IPAddress.Parse("127.0.0.1"); IPEndPoint endPoint = new IPEndPoint(ip,5000); //2. TCP Socket 생성 Socket socket = new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp); //3... 2013. 4. 25.
SuperSocket http://supersocket.codeplex.com/ FTP 서버, SMTP/POP3/IMAP4서버 등등 쉽게 소켓을 이용한 서버 Application 을 만들수 있다고 소개하고 있다.. 그럼 장점들을 한번 보겠다. 1. 사용하기 매우쉽고 , 강력한 소켓서버를 단지 몇게의 클래스로 만들수 있다. 2. 동기, 비동기 통신을 모두 지원한다.(설정파일에서 설정을 변경할수 있음) 3. 사용자 프로토콜도 지원한다. 4.SSL/TLS 암호화를 자동으로 지원한다. 5.멀티플 소켓서버인스턴스를 지원한다. 6.SuperSocket은 콘솔이나 윈도우 서비스와 같은 곳에서 구동될수있다. 7. 대부분의 activity를 유연하게 로깅할수 있다. 8.UDP지원을 한다. 9.IPv6를 지원한다. 10.Windows Azur.. 2013. 4. 25.
C# 비동기 소켓 (Asynchronous Socket) 방식 간단한 채팅 서버 & 클라이언트 기본 구조는 이전에 작성 하였던 http://blog.naver.com/spaciall/50103932789기사에 바탕을 두고 있습니다. 서버만 비동기 구조로 바꾸어 보았습니다.실질적으로 생성자에 전달해 주는 인자가 true/false냐에 따라 비동기/동기 모드를 모두 지원합니다. C#에선 비동기로 통신을 하면 내부적으로 IOCP구조를 흉내내서, 효율이 좋다고 합니다. 올린 소스에 기초해서 비동기에 관련된 부분을 부분 부분 하나씩 띄어 설명하겠습니다.클라이언트 소스, 서버 소스 2개 중 서버 소스를 보시며 읽어 주시면 됩니다. 아래 부분은 mFdes라는 Listen 소켓을 통해 비동기 Accept에 시동을 거는 함수 입니다.new AsyncCallback(EndAcceptClient) 라고 써주면 Acc.. 2013. 4. 24.
thread를 이용한 다중클라이언트 연결서버 thread 를 이용한 다중클라이언트 연결서버 제작윤 상배dreamyun@yahoo.co.kr 차례1절. 소개2절. Thread 네트웍 프로그래밍2.1절. Thread 를 이용함으로써 얻는 이익과 손해2.2절. 쓰레드를 이용한 네트웍 서버 프로그래밍2.2.1절. 기능정의2.2.2절. zipcode_thread.c2.2.3절. thread_mon.c2.3절. 테스트3절. 결론1절. 소개지금까지 fork(),select(),poll() 을 이용한 다중클라이언트를 받아들이는 서버제작에 다루었었다. 이번은 그중 마지막으로 thread 를 이용한 서버제작을 아룰것이다. thread 의 구현을 위해서는 pthread 를 이용 하도록 하겠다.물론 이들 fork, select, poll, thread 외에도 몇가지 (.. 2013. 4. 24.