BasicLike
Latest Post
-
8. 이벤트 (요약)
8. 이벤트 (요약)
2025.10.2300. 사전 지식더보기대리자는 함수를 데이터화(자료형화) 해서 기본 자료형 > 복합 자료형 > 사용자 정의 자료형 > 클래스 자료형 > 대리자 자료형 대리자를 사용하면, 함수를 변수처럼, 함수를 객체로, 함수를 클래스 자료형처럼 변환하여 사용할 수 있다. 01. 목표더보기“Button” 의 Click( ) 함수가 동작하면, Label 의 Show( ) 함수 실행을 구현하고 싶습니다.이를 어떻게 구현할까요? Qt 에서는 Connect 를 통해 손쉽게 함수와 함수를 연결했습니다.C#에서는 함수를 변수처럼 사용하는 "대리자"와 대리자의 변형인 "이벤트"를 이용합니다. 02. 좀 더 간단한 목표더보기A. 좀 더 간단한 목표 “Button” 의 Click( ) 함수가 동작하면, Show( ) 함수가 실행되도록.. -
31. 이벤트 기반 소켓 동작 1단계
31. 이벤트 기반 소켓 동작 1단계
2025.10.22목표더보기 이벤트 이해더보기이벤트 (요약) 복합 자료형 > 사용자 정의 자료형 > 클래스 자료형 > 대리자 자료형 대리자를 사용하면, 함수를 변수처럼, 함수를 객" data-og-host="basiclike.tistory.com" data-og-source-url="https://basiclike.tistory.com/558" data-og-url="https://basiclike.tistory.com/558" data-og-image="https://blog.kakaocdn.net/dna/bhaYAi/hyZL1SHHrk/AAAAAAAAAAAAAAAAAAAAAFFaXwlKFWSbI0pgJe0FxjSjeZisDirbMU7L3Q7r20Dx/img.png?credential=yqXZFxpELC7KVnFOS48ylbz2pIh7yKj8&expires=1761922799&allow_ip=&allow_referer=&signature=qFmQjJOGMDJVw9sWhep8Lc%2BGh7w%3D -
24. TCPClient 클라이언트 4단계
24. TCPClient 클라이언트 4단계
2025.10.22"TCPClient 클라이언트 4단계" 구현 목표더보기 연결 해제 구현하기더보기 실행 테스트더보기 -
23. TCPClient 클라이언트 3단계
23. TCPClient 클라이언트 3단계
2025.10.22"TCPClient 클라이언트 1단계" 구현 목표더보기 서버로 메시지 전송 구현더보기if (userInput != null && userInput.Trim() != "" && client.Client != null && client.Client.Connected){ // [F] 서버로 메시지 전송 _ = client.SendData(userInput);} if(string.IsNullOrEmpty(userInput) || _client == null || !_client.Connected){ Console.WriteLine(" - 서버에 연결되어 있지 않거나, 전송할 데이터가 없습니다."); return;} else{ try { // [G.1] 서버로 데이.. -
22. TCPClient 클라이언트 2단계
22. TCPClient 클라이언트 2단계
2025.10.21"TCPClient 클라이언트 2단계" 구현 목표더보기 서버로부터 메시지 수신 구현더보기 // [F] & [E.3] 서버로부터 데이터 수신 대기 시작 (실제 비지니스 로직)ReadDataAsync(_client); // [F] 서버로부터 데이터 수신 대기 메서드private void ReadData(TcpClient client){} // [F.1] 서버로부터 수신된 데이터를 읽기 위한 준비 (StreamReader, Buffer 등)StreamReader clntStreamReader = new StreamReader(client.GetStream());char[] buffer = new char[1024];int readByteCount = 0; // [F.2] 무한 루프를 돌면서, 서버로부터 수.. -
21. TCPClient 클라이언트 1단계
21. TCPClient 클라이언트 1단계
2025.10.21"TCPClient 클라이언트 1단계" 구현 목표더보기C# 콘솔 프로젝트 생성하기더보기Visual Studio C# 콘솔 프로젝트 생성하기 Visual Studio C# 콘솔 프로젝트 생성하기VS C# 콘솔 프로젝트 생성하기더보기 추가 설정더보기basiclike.tistory.com 외부 프로젝트 솔루션에 추가하기더보기외부 프로젝트 솔루션에 추가하기 Visual Studio C# 라이브러리 가져오기 basiclike.tistory.com 프로젝트에 클래스 파일 추가하기더보기프로젝트에 클래스 파일 추가하기 프로젝트에 클래스 파일 추가하기 basiclike.tistory.com 클라이언트 로직 구현하기더보기// [A] 클라이언트에서, 서버 접속에 필요한 데이터를 준비합니다.(Private 필드, 맴버 변수.. -
7. 이벤트
7. 이벤트
2025.09.301. 대리자 vs 이벤트 선언 방법: 이벤트는 대리자를 event 키워드로 수식해서 만든다.더보기A. 이벤트는 대리자와 같은 기반을 가진 개념으로, 대리자를 이해한 후 이벤트를 학습해야 한다. B. 이벤트가 대리자와 다른점은, 이벤트는 메서드 안에서만 호출해서 사용 가능하다는 점이다.// 대리자 선언delegate void Callback(string message);class Button{ public Callback? MyHandler; // 대리자 필드 public event Callback? Click_Signal; // 이벤트로 변경 (외부에서 Invoke 금지) public void RaiseClick(string message) { Click_Signal?.. -
6. 대리자(2)
6. 대리자(2)
2025.09.301. 참고 자료더보기A. 참고 링크MSDN B. 학습순서Callback 용어 개념 Delegate 용어 개념대리자를 선언하고 사용하는 방법대리자를 사용하는 이유일반화 대리자를 사용하는 방법Multicast Delegete (대리차 체인)대리자에서 이벤트로 개념 확장 C. 대리자 사용 목적메서드를 변수처럼 사용하기 위해이벤트 처리코드의 결합도 낮춤 (느슨한 결합, Loosely Coupled)여러 개의 메서드를 하나의 대리자에 연결, 한 번에 실행 가능LINQ, 람다 표현식에서의 활용메서드 호출을 런타임에 동적으로 변경할 때비동기 호출 (BeginInvoke/EndInvoke) 2. 대리자 사용법더보기6. 대리자(1) 6. 대리자(1)1. 대리자를 선언하는 C# 문법: 대리자 학습 관점은, 함수를 변수..