C# WPF/Network
32. 이벤트 기반 소켓 동작 2단계
32. 이벤트 기반 소켓 동작 2단계
2025.10.24목표더보기 이벤트 전달용 데이터 클래스 자료형 구현더보기// [이벤트 전달용 데이터 클래스]public class TextReceivedEventArgs : EventArgs{ public string ClientInfo { get; set; } public string TextReceived { get; set; } public TextReceivedEventArgs(string _clientInfo, string _textReceived) { ClientInfo = _clientInfo; TextReceived = _textReceived; }} 이벤트 정의 구현더보기// [1] 텍스트 수신 이벤트public event EventHandler? Te..
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 필드, 맴버 변수..
15. TCPListener 서버 5단계
15. TCPListener 서버 5단계
2024.02.03"TCPListener 서버 5단계" 구현 목표더보기 서버 연결 종료 구현더보기if (mTCPListener != null){ //(7) mTCPListener.Stop();} foreach (TcpClient clnt in mClients){ clnt.Close();}mClients.Clear(); TCPClient더보기using System;using System.Net.Sockets;using System.Text;namespace TcpClientTest{ class Program { static void Main(string[] args) { // [1] 접속 할 서버의 IP, PORT 정보넘겨받아 바로 연결한다. ..
14. TCPListener 서버 4단계
14. TCPListener 서버 4단계
2024.02.01"TCPListener 서버 4단계" 구현 목표더보기 클라이언트 관리 구현더보기List mClients;public TCPSocketServer(){ mClients = new List();} //연결될 때마다 서버-클라 동작해야 할 로직mClients.Add(client);Console.WriteLine( string.Format("클라이언트 연결 완료 (총 연결 수: {0}) - 원격 주소: {1}", mClients.Count, client.Client.RemoteEndPoint) ); 9if (mClients.Contains(client)){ mClients.Remove(client); Debug.WriteLine( String.Format("클라이언..
13. TCPListener 서버 3단계
13. TCPListener 서버 3단계
2024.02.01"TCPListener 서버 3단계" 구현 목표더보기 ManageClinet( ) 구현더보기 //(4)NetworkStream? stream = null;StreamReader? reader = null;stream = client.GetStream();reader = new StreamReader(stream);char[] buffer = new char[1024]; while (KeepRunning){ //(5) int bytesRead = reader.Read(buffer, 0, buffer.Length); if (bytesRead == 0) break; // Client disconnected string receivedData = new string(buffe..
12. TCPListener 서버 2단계
12. TCPListener 서버 2단계
2023.10.06"TCPListener 서버 2단계" 구현 목표: Accpet( ) 무한 반복, 복수의 클라이언트 연결 요청 수락 구현더보기 서버 동작 상태 관리더보기 예외 블록 처리더보기 클라이언트 연결 루프더보기 서버에서 다수의 클라이언트 연결 요청을 수락할 수 있음을 확인한다.
11. TCPListener 서버 1단계
11. TCPListener 서버 1단계
2023.10.06소켓 통신 실행 흐름과 구조더보기소켓 통신 실행 흐름 소켓 통신 실행 흐름클라이언트-서버 통신 모델더보기Network 네트워크로 연결되어 있는 서로 다른 두 컴퓨터가 데이터를 주고 받을 수 있도록 하는 것으로 물리적인 연결이 필요하다. 클라이언트-서버 통신 모델 대basiclike.tistory.com C# Socket API 동기 vs 비동기C# TcpListener/TcpClient 동기 vs 비동기 "TCPListener 서버 1단계" 구현 목표 더보기 C# 윈폼 프로젝트 생성하기더보기Visual Studio C# 윈폼 프로젝트 생성하기 Visual Studio C# 윈폼 프로젝트 생성하기VS C# 윈폼 프로젝트 생성하기더보기 추가 설정더보기basiclike.tistory.com C# 라이브러리 ..
10. C# TCPClient, TCPListener
10. C# TCPClient, TCPListener
2023.10.06소켓 통신 실행 흐름더보기소켓 통신 실행 흐름 소켓 통신 실행 흐름클라이언트-서버 통신 모델더보기Network 네트워크로 연결되어 있는 서로 다른 두 컴퓨터가 데이터를 주고 받을 수 있도록 하는 것으로 물리적인 연결이 필요하다. 클라이언트-서버 통신 모델 대basiclike.tistory.com TCPListener : Server의 Listen( ) 동작을 의미한다.더보기using System.Net.Sockets;using System.Net;namespace TcpServerTest{ class Program { static void Main(string[] args) { // [1] 서버의 Listen 동작을 바로 실행 할 수 있다. ..