Programing
-
스트림(Stream)Programing/C# 2009. 3. 19. 21:18
스트림은 시냇물, 개울, 흐름이라는 뜻을 가지고 있다. 시냇물과 같이 출발지에서 목적지방향으로 흘러가는 데이터의 순차적인 흐름으로 이해하면 된다. C#에서는 모든 입출력이 Stream이라는 추상클래스를 통해서 이뤄진다. 1. FileStream 과 Encoding - 파일스트림 클래스는 파일 기반의 스트림을 처리하기 위해 스트림 추상 멤버들을 오버로드하여 구현하고 있다. 파일을 생서, 변경, 삭제등등을 할수 있는것이 바로 FileStream이다. 주요 속성으로는 1) FileMode : 파일의 존재여부를 파악. 2) FileAccess : 읽기 / 쓰기 여부 파악. 3) FileShare : 공유 여부를 결정 등이 있다. 스트림을 통해 전달된 데이터는 바이트(Byte)형태로 저장된다. 이 바이트들이 어떤..
-
스레드 사용하기Programing/C# 2009. 3. 19. 14:57
1. System.Threading 네임스페이스를 사용 2. public sealed class Thread : 스레드를 만들고, 제어하고, 우선순위를 정해주는 클래스 (상속금지) 3. ThreadStart 델리게이트 사용 : 스레드를 사용할 메서스를 참조할 수 있게 함 4. Sleep() 와 Suspend()메서드를 사용하여 활동중인 스레드 중지가능 sleep 는 지정된 시간이 지나면 깨어나지만, Suspend는 영원히 잠들어 버린다. 5. 멀티 스레드로 사용할 경우 가장 중요한점은 동기화부분이다. (Look) 6. IsBackground 속성은 백그라운드 스레드로 사용할 것인가를 묻는것으로 true인 경우 백그라운드 스레드가 되어 해당 메인 프로세스가 종료되면 함께 강제종료되는것이다. 7. Abort..
-
연결형 스트림 소켓과 비연결형 데이터그램 소켓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..
-
OSI 7계층Programing/Ent.. 2009. 3. 17. 23:00
1. Physical Layer (물리계층) - OSI모델의 가장 하위에 자리잡고 있으며 보다 상위의 데이터링크 계층에서 만들어진 이진 신호를 전송하는 역할을 한다. 주로 인터넷을 하기위해 사용되는 모든 장비들이 물리계층에 포함된다고 할수 있다. 2. DataLink Layer - 물리계층을 통해 얻은 이진 신호를 점검, 오류체크나 복구기능을 한다. 네트워크층으로 부터 넘겨받은 데이터를 물리 계층으로 전달하기 위한 최종 준비를 하는 층이다. 3. Network Layer - 복잡하게 연결되어 있는 네트워크의 그룹을 논리적 네트워크로 구분, 데이터를 패킷화하여 적절한 경로를 통해 목적지까지 전송될 수 있도록 안내 4. Transport Layer (전송 계층) - 네트워크 계층이 시스템간을 연결하는 역할을..
-
VertexPositionNormalTexture 구조체Programing/XNA 2008. 9. 9. 17:49
VertexPositionNormalTexture 구조체는 정점들의 내용을 저장하는데 사용된다. 정점의 내용으로는 정점의 위치, 정점의 법선, 텍스처의 좌표값을 가진다. public VertexPositionNormalTexture ( Vector3 position, Vector3 normal, Vector2 textureCoordinate ) 보통 private VertexPositionNormalTexture[] vertices; 와 같이 선언해서 vertices에 정점들을 담아서 사용하면 된다.
-
생성자에서의 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..
-
XNA 프레임워크의 로직 흐름Programing/XNA 2008. 8. 19. 14:56
XNA 프레임워크의 로직 흐름에 대해 알아 두자!! 1. 메인 응용 프로그램이 게임 생성자를 호출한다. 2. 게임 생성자가 게임컴포넌트들을 생성하고 각각 그들의 생성자를 호출한다. 3. XNA 프레임워크가 게임의 Initialize함수(초기화)를 호출한다. 4. XNA 프레임워크가 각 게임컴포넌트의 Initialize함수(초기화)를 호출한다. 5. 각 Drawable 게임컴포넌트의 LoadContent함수를 호출한다. 6. 본 게임의 LoadContent함수를 호출한다. 7. 본 게임의 Update 메서드를 호출한다 8. 각 게임컴포넌트의 Update 메서드를 호출한다. 9. 본 게임의 Draw함수를 호출한다. 10. 각 Drawable 게임컴포넌트의 Draw함수를 호출한다. 11. 노란박스안의 7 ~1..