C#24 C# Log4Net을 이용한 로그남기기 http://logging.apache.org/log4net/index.html 위 사이트에서 라이브러리를 제공한다. binary를 다운로드 받으면 각 플랫폼마다 빌드된 lib 가 존재 한다. 현재 프로젝트는 .net Framwork 3.5 기반이므로 .net 3.5 빌드 버젼의 dll을 사용한다.dll 파일을 참조에 추가하면위와 같이 References 라이브러리에서 확인할수있다.이 라이브러리를 사용하기 위해서 log4net.xml 파일이 필요하다. 로그 정보 파일로 log4j와 거의 동일하다. 1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32.. 2013. 5. 14. 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# 윈폼에서 단축키 설정 윈폼(via C#)으로 각종 툴, 어플리케이션을 만들 때 유저키덕후들을 위한 단축키가 필요할 수 있다. 마우스라는 혁신적인 입력 장치가 있더라도 숙련되면 키보드 이상가기 힘드니까 :) 언뜻 생각하기에는 System.Windows.Forms.Form 클래스에서 KeyDown 이벤트를 잡아서 처리를 하면 될 것 같아 해보았지만, 동작하지 않는다 ㅇㅂㅇ;; Google신(MS는 Bing신...)에 문의 결과 ProcessCmdKey 메소드를 오버라이드 한다면 된다고 한다. 간단히 해보면 다음과 같다. protected override bool ProcessCmdKey(ref Message msg, Keys keyData) { if (!base.ProcessCmdKey(ref msg, keyData)) // 위.. 2013. 5. 3. c# Window Form Application Idle 루프문 사용자설정 Application.EnableVisualStyles(); // Application.SetCompatibleTextRenderingDefault(false); // Application.Run(new Main()); // Main Roop using ( formMain RootFrame = new formMain() ) { RootFrame.peer = peer; RootFrame.Show(); while (RootFrame.Created) { Application.DoEvents(); peer.Service(); } Application.Exit(); } 2013. 4. 30. C# WindowForm Process종료 윈도우폼에서 창 종료시에 종료가 안되고 프로세스가 남아서계속 괴롭힐때가있습니다.그럴때는 Main 폼 종료하는 곳에서 Dispose() 에Process[] p = Process.GetProcessesByName("프로젝트명"); for (int i = 0; i < p.Length; i++) { p[i].Kill(); }를 넣어주면됩니다.물론 예외처리는 본인이 알아서 추가시켜줘야하겟지만...이게 물론 완벽하지는 않습니다.더 좋은방법이 있으신분들은 댓글달아주세요 http://stackoverflow.com/questions/2905938/c-sharp-windows-form-on-close-do-process 그리고 스택오버플로우에 나온 다른방법들. 2013. 4. 30. C# 문자열 조작 string 클래스는 문자열과 관련된 수많은 메소드들을 가지고 있습니다. 이들의 목적은 문자열의 내용을 검색하거나 조작하기 위함입니다. 이번 포스트에서는 string의 메소드들을 정리해보았습니다. 단순히 나열하기 보다는 무엇을 하고 싶다는 것을 기준으로 필요할 때 찾아 볼 수 있도록 하였습니다. 원하는 작업string이 제공하는 필드 또는 메소드사용 예출력 결과알파벳 문자들을 대문자로 바꾼다.string ToUpper()string str = "Super Star"; str = str.ToUpper();Console.WriteLine(str);SUPER STAR알파벳 문자들을 소문자로 바꾼다.string ToLower()string str = "Super Star"; str = str.ToLower();.. 2013. 4. 26. 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. 이전 1 2 3 다음