Programing/C#
-
연결형 스트림 소켓과 비연결형 데이터그램 소켓Programing/C# 2009. 3. 18. 06:50
1. 연결형 스트림 소켓 연결형 스트림 소켓은 두 개의 시스템이 연결된 다음 서로 데이터를 주고 받기 시작하여 연결된 상태의 데이터 주고 받기가 끝난 다음 연결을 끊게 되는 형식으로 TCP 프로토콜을 기본으로 한다. 오류나 패킷의 순서에 특별히 신경 쓸 필요가 없으며 안정적이라고 할 수 있다. 그래서 HTTP,FTP등과 같은 많은 프로토콜이 TCP를 기본으로 하고 있다. 2. 비연결형 데이터그램 소켓 비연결형 데이터그램 소겟은 UDP 프로토콜을 기본으로 하고 있으며 명시적으로 서로 연결되어 있지 않은 상태로 데이터를 주고받는 형태로 서로 연결을 하거나 해제 과정이 없어 빠르기 때문에 신뢰성 보다는 빠르기가 중요한 큰 용량의 데이터보단 소량의 데이터를 전송 할 때 쓰인다.
-
IPHostEntry 와 IPEndPointPrograming/C# 2009. 3. 18. 06:44
1. IPHostEntry IPHostEntry ipEntry = Dns.Resolve(_strHostName); 위의 문장은 Resolve() 메서드를 이용하여 도메인 이름으로 부터 IP주소를 얻어오는 방법이다. 예를 들어 위의 변수 static string _strHostName = "www.naver.com"; 로 선언한다면 네이버의 IP 주소를 얻어와서 저장하는 것이다. 위의 Dns의 메서드인 ReSolve()은 IPHostEntry값으로 리턴해주는 가장 많이 사용되어지는 메서드이다. MSDN에서 꼭한번 읽어보자. IPHostEntry클래스에서 가장 중요한 메소드는 AddressList이다 AddressList은 호스트와 연결된 IP 주소 목록을 가져오거나 설정합니다.(배열로 저장) 2. IPEn..
-
생성자에서의 this 와 basePrograming/C# 2008. 8. 27. 12:36
생성자를 보면 가끔 this() 와 base()를 상속하는 경우를 종종 볼 수 있다. 과연..이게 멀까 고민하다가 적어둔다. 1. this - this는 객체 자신에 대한 참조값을 나타내는 값으로도 많이 사용되어 지는 키워드 이다. 이런 this 키워드는 생성자를 호출 할때도 사용되어 지는데 예를 들면 다음과 같다. public FPS(Game game) : this(game, false, true) { } public FPS(Game game, bool synchWithVerticalRetrace, bool isFixedTimeStep) : this(game, synchWithVerticalRetrace, isFixedTimeStep, game.TargetElapsedTime) { } public FP..
-
가비지 컬렉션(Garbage Collection)Programing/C# 2008. 8. 13. 11:37
.NET 프레임워크의 가비지 수집 New 키워드를 사용하여 생성된 개체들은 managed 힙에 들어간다. 그러면 .NET은 이 개체에 필요한 메모리를 계산해서 힙에 빈 공간이 충분히 있는지 확인한다. 만약 Managed힙 상에 메모리를 할당할 수 없다면 가비지 수집기가 실행되어 사용되지 않는 메모리들을 해제하게 된다. 이 가비지 수집기는 다음과 같은 2가지 가정을 통해 행동을 하게 된다. 1. 최근에 생성된 개체들일수록 수명이 짧을 것이다. 2. 이미 오랫동안 존재해온 개체들은 앞으로도 한동안 살아있을 것이다. 또한 .NET 프레임워크에는 총 삼대가 존재한다. 0세대에서는 최근에 추가된 모든 메모리들을 저장한다. 시간이 지나 힙이 가득차면 가비지 수집기가 실행돼서 활동 중인 모든 개체들을 1세대로 보내고..
-
이벤트(Object sender, EventArgs e)Programing/C# 2008. 8. 6. 11:57
Object sender, EventArgs e 에서 sender는 어떤 오브젝트가 이 이벤트를 유발시켰는지를 나타나게 한다. 여러개의 버튼이 한가지 이벤트 함수를 공유하고 있을 때 이 이벤트 함수가 어느 버튼에 의해서 유발되었는지를 알 수 있는 방법은 sender를 확인해 보는것이다. 즉.... 누가 이벤트를 부르고 있느냐에 대한 정보이다.!! e 는 EventArgs 형으로 이벤트 발생과 관련된 정보를 가지고 있다. 예를 들어서 마우스 클릭 이벤트시에 마우스가 클릭된 곳의 좌표를 알고 싶다던가 마우의 왼쪽 버튼인지 오른쪽 버튼인지를 알고 싶을 때 e의 내용을 참고 하면 될 것이다. 이벤트 처리기(Event Handler)는 이벤트에 바인딩되는 메서드이다. 이벤트가 발생하면 이벤트와 연결된 이벤트 처리..
-
예외(Exception)Programing/C# 2008. 8. 5. 14:04
예외(Exception)란 프로그램 실행도중 발생하는 오류를 말한다. 에러는 그 발생 상황에 따라 크게 2가지로 나눌수 있는데 비교적 쉽게 에러를 찾을수 있는 오타나 문법적인 에러의 컴파일타임 에러와 디버깅 절차를 거치지 않으면 거의 잡기 힘든 상황의 런타임에러로 구분할 수 있다. 예외란 일반적으로 런타임 상황에 나타나는 오류를 의미한다. try ~ catch 문 일반적으로 런타임 예외처리는 try ~ catch를 사용한다. try문에서 예외가 발생할 가능성이 있는 코드의 영역을 지정해 주고, catch문에서는 발생한 예외나 throw 명령으로 전달된 예외를 처리하게 된다. 즉 try는 예외 감시가 이며, catch는 예외처리기 역할을 하게 된다. 경우에 따라서는 여러개의 에러발생을 처리하기 위해 다중 ..
-
컬렉션(Collection) 클래스Programing/C# 2008. 8. 5. 12:52
ArrayList 클래스는 IList로 구현된 대표적인 클래스이다. 이 클래스는 메서드를 통해 객제 저장, 검색, 삭제 등등을 할 수 있습니다. 대표적인 메서드들은 다음과 같다. Add() : 개체를 ArrayList의 끝 부분에 추가한다. AddRange() : ArrayList의 끝 부분에 ICollection의 요소를 복사한다. Clear() : ArrayList에서 요소를 모두 제거한다. Clone() : ArrayList의 단순 복사본을 만든다. Insert() : ArrayList의 지정된 인덱스에 요소를 삽입한다. InsertRange() : ArrayList의 지정된 인덱스에ICollection의 요소를 삽입한다. Remove() : ArrayList에서 맨 처음 발견되는 특정 개체를 제거..
-
컬렉션(Collection) 인터페이스Programing/C# 2008. 8. 1. 16:38
컬렉션(Collection)은 ArrayList, SortedList, Hashtable, Stack, Queue, NameValueCollection 과 같은 유형들이 있다. 이들은 데이터를 보관하는것 뿐만 아니라. 수정, 삭제, 삽입, 검색 등의 다양한 기능을 제공해 준다. 배열과 가장 차이가 나는 특징은 메모리의 사이즈를 동적으로 확장할 수 있다는 점이다. 배열은 첨자로 배열을 생성후에 그 첨자의 범위 내에서만 사용할 수 있는 반면에 컬렉션류들은 데이터를 삽입을 하게되면 동적으로 메모리를 늘려주게 된다. 쉽게 컬렉션은 소형 데이터베이스라고 생각하면 된다. (단지 프로그램이 실행되는 동안만~~~) 컬렉션의 네임스페이는 System.Collections 이다. 위는 컬렉션류 인터페이스의 상속구조를 보여..