본문 바로가기

프로그래밍

(7)
[네트워크 프로그래밍] C# UDP 소켓 서버/클라이언트 예제로 보는 통신 과정 UDP Flow UDP는 TCP와 다르게 클라이언트의 Connect() 요청을 기다리는 listen()과 이 연결 요청을 허가하는 accept() 과정이 없습니다. 이러한 연결 과정이 없기 때문에 UDP는 TCP와는 다르게 비연결형 서비스이며 처리속도가 빠르다. C# UDP 소켓 서버/클라이언트 예제 C# UDP 소켓 서버/클라이언트 예제를 통해 UDP 통신 과정을 보자. 1. Server 1) Bind() : IP와 PORT 번호를 바인딩한다. 2) RecvFrom() : Client와 소켓 통신을 수행하며 전송되는 데이터를 받는다. (예제는 동기적 Server 소켓이므로 Client로부터 데이터를 받지 않으면 다음 SendTo() 과정을 하지 않고 대기한다.) 3) SendTo() : Client와 ..
[책 정리 : C# 8.0 프로그래밍] 1장. 닷넷 프레임워크 (CIL, CTS, CLS, CLI, CLR) 닷넷 프레임워크란? 마이크로소프트에서 발표한 응용 프로그램 개발 환경으로서 프로세스 가상 머신(VM)에 속한다. 일반적으로 네이티브 언어로 만들어진 프로그램들이 운영체제에서 곧바로 실행되는 것과 달리 닷넷 프레임워크를 기반으로 만들어진 응용 프로그램은 반드시 닷넷 프레임워크가 미리 설치되어 있어야 한다. 닷넷 프레임워크의 CLR은 포로세스(EXE)가 실행되면 메모리에 함께 적재돼 실행된다. 사용자가 프로세스(EXE)를 실행하면 제일 먼저 CLR이 로드되고, CLR이 프로세스(EXE) 내부 중간 언어 IL을 실행시킨다. MS 홈페이지 : 닷넷 프레임워크란? 닷넷 프레임워크는 실행 중인 앱에 다양한 서비스를 제공하는 WINDOWS용 관리형 실행 환경으로, 두 가지 주요 구성 요소로 구성됩니다. 하나는 실행중..
[책 정리 : C# 8.0 프로그래밍] 시작 C# 윈폼 기반 PC 응용 프로그램을 개발한 경력이 3년이 되어간다. 신입으로 입사한 후 C# 윈폼을 접했고 주어진 프로젝트를 완수하기 위해 중간중간 공부도 했고, 프로젝트 기능 구현에 필요한 새로운 문법들은 그때그때 공부하며 정리해갔지만 어느 순간 그냥 필요한 부분을 아무 생각 없이 복사 붙여 넣고 있는 모습을 보았다. 어떤 의미에서 사용했는지, 여기선 더 효과적인 방법은 없는 것인지 고민조차 하지 않는 나를 봤다. 이러면 안되겠다는 생각을 했고 인터넷에 올라온 정보들이 많지만 책으로 읽으면서 모르는 부분, 애매한 부분, 정리해두고 필요할 때 보아야 할 부분들을 다시 공부하고 정리하고 싶었다. 최근 C# 기본서적으로 추천받고 있는 "시작하세요! C# 8.0 프로그래밍" 책을 구입했다. 최신 버전 새로운..
[네트워크] UDP & TCP 패킷(Packet) 헤더(Header) UDP 헤더 1) SP (Source Port) 송신단에서 임의로 부여한 포트 번호 2) DP (Destination Port) 수신(목적지) 받을 포트 번호 응용 프로그램, 서비스, 단말에 따라 포트 번호가 정해져 있다. 3) UDP Length UDP 헤더와 데이터를 포함한 전체 바이트 길이 4) UDP Checksum 전송 에러 관련 필드로 UDP는 체크섬(데이터 손실 유무 확인 서비스)이 존재 UDP는 에러 복구 및 기타 전송 에러 관련 서비스 제공이 없기 때문에 TCP에 비해 간단하다. TCP 헤더 1) SP (Source Port) 송신단에서 임의로 부여한 포트 번호 2) DP (Destination Port) 수신(목적지) 받을 포트 번호 응용 프로그램, 서비스, 단말에 따라 포트 번호가 정..
[네트워크] UDP, TCP 란? UDP(User Datagram Protocol) 정의 UDP는 User Datagram Protocol로 TCP와 함께 OSI 모델 4계층인 전송 계층에 포함되는 프로토콜이다. IP를 사용하는 네트워크 내에서 컴퓨터간 메시지들이 교환될 때 제한된 서비스만 제공하는 프로토콜이다. TCP와 마찬가지로 데이터그램이라는 데이터 단위를 받기 위해 IP를 사용한다. 그러나 차이점이 있다면 TCP와 달리 메시지를 데이터그램으로 나누고, 반대편에서 재조립, 순서 조정 등의 서비스는 하지 않는다. UDP는 IP 계층에서 제공하지 않는 서비스도 제공하는데, IP내 사용자 구분을 위한 포트 번호 부여와 데이터 손상 여부 확인에 쓰이는 체크섬 서비스다. * 데이터그램(Datagram) 데이터그램은 송수신 컴퓨터 그리고 전송..
[네트워크] OIS 7계층 정리 OIS Model (Open Systems Interconnection Reference Model) 란? OIS Model (Open Systems Interconnection Reference Model)은 국제표준화기구인 ISO에서 개발한 모델로, 컴퓨터 네트워크 프로토콜 디자인과 통신을 계층으로 나누어 설명한 기준이다. 1 계층 : 물리계층 (Physical) 전기적, 기계적, 기능적인 특성을 이용하여 데이터를 전기적 신호를 변환한 후 물리적 매체(모뎀, 허브. 케이블 등)를 이용하여 신호를 전달한다. 단지, 신호 변환 및 전달 역할만 할 뿐 데이터가 무엇인지, 에러 유무 파악 등의 역할은 하지 않는다. 2 계층 : 링크 계층 (Link) 링크 계층은 포인트 투 포인트(Point to Point)..
[C#] 001. Windows Forms, Partial Class(부분 클래스) 사용하기 windows Form 메인 소스 코드 정리 필요 c# windows forms 응용프로그램 개발 중 메인 폼 소스 코드 사이즈가 커지면서 관리가 힘들어졌다. 아무래도 메인폼에 form control 내에서 오는 이벤트와 method 등 모든 소스 코드를 다 적다 보니 그 안에서 얽히고설켜서 더 커지기 전에 정리해야겠다는 생각이 들었다. 이전엔 사이즈가 크지 않은 프로젝트다 보니 주석을 통해 분리 관리하는 정말 단순한 방법을 사용했었다. 그렇게 해도 큰 문제도 없었다. 하지만 이번 프로젝트를 진행하면서 동일 방법으로 진행하다 보니 정리 안된 코드 때문에 힘들었다. 지금 정리하지 않으면 안 될 것 같았고, 차후 개발 완료 후 운영 시 유지관리에도 꼭 필요한 과정이라고 생각됐다. 그래서 여러 방법들을 찾던 ..