C# 12

[C#] 3. Console 입출력 개요 - 3.1 서식 지정 문자열, 3.2 수식 포멧 문자열, 3.3 정수 및 실수의 자릿수 지정

3. Console 입출력 개요 프로그래밍 언어를 배울 때 출력문은 제일 먼저 만나죠. 이 책에서도 첫 번째 프로그램인 "Hello, World"에서 Console.WriteLine("Hello, World!"); 를 사용했어요. Console.WriteLine("Hello, World!"); 이번 장에서는 Console 클래스를 이용하여 출력하는 방법과 일력받는 부분에 관하여 알아볼게요. 3.1 서식 지정 문자열 Console.WriteLine 메서드에 다양한 인자를 원하는 형태로 출력하려면 첫 번째 입력 인자로 서식 지정 문자열을 전달해야 합니다. 수나 날짜, 열거형 등을 원하는 형태로 출력할 때 효과적이죠. 서식 지정 문자열은 인덱스, 배치, 포멧 문자열로 구성합니다. {index [,alignme..

C#/디딤돌 C# 2024.01.22

[C#] 2. 기본 형식 II - 다양한 정수 형식, 실수 형식

2.4 다양한 정수 형식 C#은 다양한 정수 형식을 제공합니다. 1바이트인 sbyte, byte와 2바이트인 short, ushort, 4바이트인 int, uint, 8바이트인 long, ulong을 제공합니다. 정수 형식에는 정적 멤버로 MinValue와 MaxValue 속성을 제공합니다. 이를 통해 표현 범위를 알아봅시다. using System; namespace _03.정수_형식 { internal class Program { static void Main(string[] args) { Console.WriteLine("sbyte:{0} ~ {1}", sbyte.MinValue, sbyte.MaxValue); Console.WriteLine("byte:{0} ~ {1}", byte.MinValue..

C#/디딤돌 C# 2024.01.22

[C#] 2. 기본 형식 I - 메모리 크기 확인, 논리 형식 bool, 문자 형식 char

다루는 내용 2.1 메모리 크기 2.2 논리 형식 bool 2.3 문자 형식 char 2. 기본 형식 C#에서는 관리할 데이터를 표현하기 위해 형식과 변수를 제공합니다. 형식은 표현할 데이터 종류를 약속한 것입니다. 이러한 형식은 변수 선언이나 개체 생성을 통해 구체화합니다. 변수는 구체화 한 데이터에 접근하기 위해 사용하는 것입니다. C#에서 형식은 이미 제공하는 기본 형식과 개발자가 정의해서 사용하는 사용자 정의 형식이 있습니다. 다음은 System namespace에 정의한 기본 형식입니다. C# 형식에는 기본 형식과 사용자 형식이 있다고 하였습니다. 이 중에 사용자 형식에는 클래스, 구조체와 열거형이 있어요. 이들에 대해서는 뒤에서 다시 자세하게 다룰게요. 형식은 분류 방법에 따라 값 형식, 참조..

C#/디딤돌 C# 2024.01.19

1. C# 소개

1. C# 소개 안녕하세요. 언제나 휴일입니다. 컴퓨터 혹은 스마트 기기 등에서 동작하는 프로그램을 만들 때 사용하는 언어는 매우 다양합니다. 그 중에서 .NET Framework에서 동작하는 프로그램을 만들 때 가장 추천하는 언어는 C#입니다. .NET Framework는 마이크로소프트 사에서 개발한 윈도우즈 프로그램 개발 및 실행 환경입니다. 개인용 컴퓨터 뿐만 아니라 다양한 스마트 기기에 설치하여 사용할 수 있습니다. 당연히 C# 언어를 이용하면 개인용 컴퓨터를 비롯하여 다양한 기기에서 동작 가능한 프로그램을 개발할 수 있습니다. (물론 우리나라에서 .NET Framework는 거의 Windows O/S를 탑재한 컴퓨터 환경입니다.) .NET Froawork 에는 공통으로 제공하는 라이브러리를 포함..

C#/디딤돌 C# 2024.01.18

P2P 메신저 – 인증 서비스 구현 및 마무리[C#]

1. 공용 라이브러리 제작 1.1 유튜브 동영상 강의 1.2 구현 및 소스 코드 앞에서 P2P 메신저의 숏 메시지와 파일 송수신 부분을 구현했어요. 그리고 .NET 리모팅 서비스 제작 방법도 실습했었죠. 이번에는 P2P 메신저의 인증 서비스 부분을 구현해 볼 거예요. 현재 구현은 P2P에서 사용자가 상대 IP 주소와 포트 정보를 설정하고 있어요. 이 부분을 인증 서비스를 구현하여 상대 ID만 선택하여 메시지와 파일을 전송할 수 있게 할 거예요. 이를 위해 먼저 인증 서비스를 위한 공용 라이브러리를 제작합시다. 프로젝트는 클래스 라이브러리(.NET Framework)로 제작합니다. using System; using System.Collections.Generic; using System.Data; usi..

.NET 리모팅 [C#]

1. 유튜브 동영상 강의 2. .NET 리모팅이란? .NET 리모팅 기술은 서버 측에 있는 개체를 클라이언트 측에서 마치 자신에게 있는 개체를 사용하는 것처럼 사용할 수 있게 서비스를 하는 기술입니다. .NET 리모팅 서비스를 위해서는 서비스를 제공하는 서버와 서비스를 제공받는 클라이언트가 필요하며 서버 측에서 클라이언트에 제공하는 개체를 정의한 클래스 라이브러리가 필요합니다. 서버 측에서 클라이언트에 제공하는 개체는 MashalByReference에서 파생한 개체로 원격 개체라고 말합니다. 서버 측에서는 채널을 등록하여 원격 개체를 사용할 수 있게 등록합니다. 클라이언트 측에서는 서버 측 채널에 접근하여 원격 개체를 참조하여 사용하는데 클라이언트 측에서 원격 개체를 참조하여 사용할 수 있는 개체를 Pr..

P2P 메신저 – 파일 송수신 기능 구현 [C#]

1. 유튜브 동영상 강의 안녕하세요. 언제나 휴일에 언휴예요. 이번에는 P2P 메신저의 파일 송수신 기능을 구현할 거예요. 이미 P2P 메신저 – 숏 메시지 송수신 예광탄은 구현했어요. 그리고 P2P 메신저 - 파일 전송 클라이언트와 P2P 메신저 - 파일 수신 서버도 구현했죠. 이번 강의에서는 파일 전송 클라이언트와 파일 수신 서버를 라이브러리를 만들고 이를 참조하여 P2P 메신저에 파일 송수신 기능을 구현할 거예요. 파일 송수신 라이브러리에 사용할 소스 코드는 앞에서 제작한 파일 전송 클라이언트와 파일 수신 서버에 있는 소스 코드를 그대로 사용합니다. 2. 컨트롤 추가 배치 먼저 Form1에 자신의 파일 수신 서버 포트와 전송할 때 상대 파일 수신 포트를 입력할 텍스트 상자를 추가합니다. 그리고 설정..

P2P 메신저 - 파일 수신 서버 구현 [C#]

1. 유튜브 동영상 강의 이번 강의는 파일 수신 서버 구현 실습이예요. 이전 글(P2P 메신저 - 파일 전송 클라이언트 구현 [C#]) 이 필요하겠네요. 2. 이벤트 인자 및 대리자 소스 코드 2.1 연결 요청 수락 이벤트 인자 및 대리자 using System; using System.Net; namespace 파일_수신_서버 { public delegate void AcceptedEventHandler(object sender, AcceptedEventArgs e); public class AcceptedEventArgs:EventArgs { public IPEndPoint RemoteEndPoint { get; private set; } public string IPStr { get { return..

P2P 메신저 - 파일 전송 클라이언트 구현 [C#]

1. 유튜브 동영상 강의 안녕하세요. 언제나 휴일에 언휴예요. 이번 강의는 파일 전송 클라이언트를 구현하는 실습입니다. 파일 전송 및 수신에 필요한 서버와 클라이언트는 P2P 메신저를 구현할 때 필요한 요소 기술입니다. 먼저 익히고 넘어갈게요. 다음글 P2P 메신저 - 파일 전송 클라이언트 구현 [C#] 도 같이 학습하세요. 2. 파일 데이터 전송 이벤트 인자 및 대리자 소스 코드 using System; namespace 파일_전송_클라이언트 { public delegate void SendFileDataEventHandler(object sender, SendFileDataEventArgs e); public class SendFileDataEventArgs:EventArgs { public stri..

P2P 메신저 – 숏 메시지 송수신 예광탄 구현하기 [C#]

1. 유튜브 동영상 강의 안녕하세요. 언제나 휴일에 언휴예요. 이번 강의는 P2P 메신저 중에서 숏 메시지 송수신 부분을 구현할 거예요. P2P 프로그램은 Peer와 Peer 사이의 통신을 하는 프로그램을 말하죠. 전통적인 네트워크 프로그래밍에서 사용자가 사용하는 응용을 클라이언트, 서비스 제공하는 응용을 서버라고 부르죠. 그런데 P2P 프로그램에서 사용자가 사용하는 Peer는 특정 네트워크 서비스를 서버를 거치지 않고 Peer끼리 직접 주고 받습니다. 이를 위해 특정 서비스의 서버 부분과 클라이언트 부분이 Peer 부분에 구현합니다. 이번 강의는 이러한 특징을 갖는 P2P 프로그램 중에 Short 메시지를 주고 받는 부분을 구현합니다. 2. 화면 배치 숏 메시지 송수신 예광탄 프로그램에서는 자신의 IP..

TCP 통신 – Echo 서버 클래스 구현, 이벤트 정의 및 콜백 처리 [C#]

1. 유튜브 동영상 강의 이번 실습은 Echo 서버 클래스를 구현하는 실습이예요. 여기서 만들 서버 클래스는 라이브러리로 제작하기 위한 목적으로 사전 작업하는 것이예요. 서버 클래스를 사용하는 곳에서 연결 수락 및 닫기, 메시지 수신에 관한 이벤트 처리를 할 수 있게 정의합니다. 대리자 및 이벤트 인자를 정의하고 Echo 서버에 이벤트 멤버를 정의하여 콜백 처리를 하는 것이죠. 2. 연결 수락 이벤트 인자 및 대리자 소스 코드 using System; using System.Net; namespace 에코_서버_응용___클래스로_정의 { public delegate void AcceptedEventHandler(object sender, AcceptedEventArgs e); public class Ac..

TCP 통신 – echo 서버 및 클라이언트 구현 [네트워크 프로그래밍 C#]

1. 유튜브 동영상 강의 이번 실습은 TCP 통신의 기본 절차를 확인하는 실습입니다. 실습 소재는 echo 서비스입니다. 클라이언트에서 전송한 메시지를 다시 반송하는 서비스를 제공합니다. 2.TCP 통신 절차 TCP 프로토콜을 이용한 통신은 서버와 클라이언트 사이에 연결을 형성한 후에 스트림 방식으로 패킷을 송수신합니다. 스트림 방식의 통신에서는 전송한 패킷의 순서대로 도착하며 패킷 전송 중에 전송이 실패하면 다시 전송하여 신뢰성을 보장하는 방식입니다. TCP 통신에서 서버의 절차는 다음과 같습니다. 소켓 생성(대기 소켓) Bind: 소켓 – 네트워크 인터페이스와 결합 Listen: 백 로그 큐 크기 설정 반복 – Accept:클라이언트 연결 요청 대기 및 수락(송수신 소켓 반환) 클라이언트와 데이터 송..