본문 바로가기

반응형

코딩

[용어] TCP vs UDP 1. TCP ( Transmission Control Protocol ) - 연결형 서비스를 지원하는 전송계층 프로토콜, 인터넷 환경에서 기본으로 사용. - 호스트 간 신뢰성 있는 데이터 전달과 흐름 제어를 한다. 즉, 인터넷상에서 데이터를 메시지의 형태로 보내기 위해 IP와 함께 사용하는 프로토콜. - 일반적으로 TCP와 IP를 함께 사용, IP가 데이터의 배달을 처리 TCP는 패킷을 추적 및 관리. ◎ 특징 1) 연결형 서비스로 가상 회선 방식을 제공한다. 2) 데이터의 경계를 구분하지 않는다. 3) 데이터의 전송 순서를 보장한다. 4) UDP보다 전송 속도가 느리다. 5) 신뢰성있는 데이터를 전송한다. 2. UDP ( User Datagram Protocol ) - 비연결형 서비스를 지원하는 전송계.. 더보기
[C#] 남아있는 Process Kill System.Diagnostics.Process[] pros = System.Diagnostics.Process.GetProcessesByName("Test_Process"); //Process name foreach (System.Diagnostics.Process p in pros) { p.Kill(); } 더보기
[C#] Global Keyboard Hooking class globalKeyboardHook { #region Constant, Structure and Delegate Definitions /// /// defines the callback type for the hook /// public delegate int keyboardHookProc(int code, int wParam, ref keyboardHookStruct lParam); private static keyboardHookProc callbackDelegate; public struct keyboardHookStruct { public int vkCode; public int scanCode; public int flags; public int time; public int dwExt.. 더보기
[C#] 스크롤 이벤트 private void Mouse_Wheel(object sender, MouseEventArgs e) { if (e.Delta this.vScrollBar1.Maximum) { this.vScrollBar1.Value = this.vScrollBar1.Maximum; } else { this.vScrollBar1.Value = this.vScrollBar1.Value + Math.Abs(e.Delta); } } else if (e.Delta > 0 && this.vScrollBar1.Value > 0) //스크롤 올릴때 { if (this.vScrollBar1.Value - Math.A.. 더보기
[코딩] Linefeed 방지 private void txtYourTextBox_KeyDown(object sender, KeyEventArgs e) { if (e.KeyCode == Keys.Enter) e.SuppressKeyPress=true; } 1. KeyDown/KeyUp 핸들러에서 Handled 속성을 true로 설정하면 KeyPress로 처리되는 문자를 제외한 키 입력 처리가 되지 않는다. 즉, 문자열 입력은 정상적으로 되지만 방향키나 Home/End 등이 제대로 동작하지 않는다. 엔터키의 경우는 문자열로 취급되기 때문에 KeyPress가 호출되어 전달은 되지만 시스템적인 처리(라인피드 등)는 되지 않는다. 2. KeyPress 핸들러에서 Handled 속성을 true로 설정하면 C# TextBox(Rich 포함)에서 .. 더보기
[코딩] 3 var obj = sender as TextBox; int left, right, bottom, top; var curserPos = System.Windows.Forms.Control.MousePosition; curserPos = this.PointToClient(curserPos); left = obj.Location.X; right = obj.Location.X + obj.Size.Width; bottom = obj.Location.Y + obj.Size.Height; top = obj.Location.Y; if (left curserPos.X && bottom curserPos.Y) return; if (tex.. 더보기
[코딩] 2 var obj = sender as Label; int left, right, bottom, top; var curserPos = System.Windows.Forms.Control.MousePosition; curserPos = this.PointToClient(curserPos); left = obj.Location.X; right = obj.Location.X + obj.Size.Width; bottom = obj.Location.Y + obj.Size.Height; top = obj.Location.Y; if (left curserPos.X && bottom > curserPos.Y && top < curserPos.Y) return; if (textB.. 더보기
[코딩] 1 if (textBox1.Visible == ) { textBox1.Visible = true; var obj = ()sender; var langth = obj.Text.Length; int varticalLineCount = (langth / 100) + 1; var StandardHeight = 10; var hight = StandardHeight * varticalLineCount; textBox1.Size = new >Size(obj.Size.Width, hight); var currntPos = obj.Location; textBox1.Location = new Point(10 + currntPos.X, 10 + currntPos.Y);//obj.Location; textBox1.Text = .. 더보기
[용어] 메모리 영역(code, data, stack ,heap) 1. code 영역 - 코드 자체를 구성하는 메모리영역 Hex파일이나 BIN파일 메모리다. - 프로그램 명령이 위치하는 곳으로 기계어로 제어되는 메모리 영역 2. data 영역 - 전역변수(global), 정적변수(static), 배열(array), 구조체(structure) 등이 저장된다. a) 초기화된 데이터는 data 영역에 저장 b) 초기화 되지 않은 데이터는 BBS(Block Stated Symbol) 영역에 저장된다. - 프로그램 실행시 생성되고 종료되면 반환된다. - 함수 내부에 선언된 static 변수는 프로그램이 실행 될 때 할당되고, 실행될 때 초기화 된다. 3. heap 영역 - 동적으로 메모리를 할당 하고자 할 때 위치하는 영역(동적 데이터 영역) - 메모리 주소 값에 의해서만 참조.. 더보기
[용어] 디버깅 모드와 릴리즈 모드의 차이점 릴리즈 모드(프로그램을 배포하기 위해 컴파일 하는 모드)1. 초기화 하지 않는다.2. 같은 문자열 상수라도 서로 다른 공간에 할당된다.3. 디버깅정보를 삽입하지 않고 코드를 최적화하여 실행 파일 크기를 최대한 줄여준다. 4. 메모리 점유율도 낮아지고 실행도 빨라진다.5. 더 이상 현재버전에서 내결함성이나 문제점들을 발견할 수 없었을 때 빌드하여 주는 모드이다. 디버깅 모드(컴파일시 들어가는 디버깅에 필요한 잡다한 정보를 뺀 알짜 프로그램만 쏙 뽑아내는 모드)1. 실행파일에 디버깅 정보를 삽입하여 언제든지 디버깅을 할 수 있도록 하며 Debug서브 폴더에 실행파일을 만들어준다.2. 디버깅정보가 들어가 있때문에 실행파일 상태를 확인할 수 있다.3. 디버그에 필요한 정보들을 실행 시 계속 체크함으로써 속도가 .. 더보기

반응형