C#
-
C# 소켓 Socket SocketAsyncEventArgs를 사용하여 채팅 프로그램 만들기 1C# 2025. 3. 5. 22:25
# 서론 취업를 위해 여기저기 공고를 넣으며 막연히 게임 서버 강의를 듣고 있던 나는 프로그램을 만들어 보지 않으면 강의 나 책 주구장창 봐도 의미가 없다는 소리를 듣고 채팅 서버 정도는 가볍게 만들지 않을까 생각하고 만들기를 시작했는데.. 평소 공부한답시고 강의만 보고 코드를 작성 안했더니 생각보다 매끄럽게 코드 작성이 안되는 것을 깨달았다. 그래서 이번 소켓를 이용한 채팅 서버 작성을 통해 감을 되찾고 코드 작성 습관화를 목표로 진행할 예정이다. # 채팅 프로그램 사양클라이언트에서는 닉네임을 입력하여 채팅 서버에 접속하고 채팅 서버는 브로드캐스팅을 통해 입장한 모든 클라이언트에게 채팅를 보낼 수 있도록 구현 예정 --- # 코드클라이언트 코드using System.Net;using System.Net..
-
04/06 단일연결리스트 Add구현 및 인덱서 사용 연습C# 2021. 4. 6. 00:41
Program.cs namespace Study07 { class Program { static void Main(string[] args) { new App(); } } } App.cs using System; using System.Threading; namespace Study07 { public class App { public App() { SingleLinkedList list = new SingleLinkedList(); list.Add(new Node("A")); list.Add(new Node("B")); list.Add(new Node("C")); list.Add(new Node("D")); Console.WriteLine("단일연결리스트 3번째 요소 :" + list[2].data);..
-
03/29 Thread 복습 3 (상태)C#/수업내용 2021. 3. 29. 23:49
스레드의 Name속성에 이름을 설정하거나 가져올 수 있다. 스레드의 ThreadState속성으로 스레드의 동작 상태를 가져올 수 있다. Program.cs namespace Study07 { class Program { static void Main(string[] args) { new App(); } } } App.cs using System; using System.Threading; namespace Study07 { public class App { Thread thread1; Thread thread2; public App() { thread1 = new Thread(() => { //Running : 스레드 시작후 동작 상태 Console.WriteLine(thread1.ThreadState)..
-
03/29 Thread 복습 2 (Abort)C#/수업내용 2021. 3. 29. 22:53
Abort()메서드를 사용하는것으로 ThreadAbortException를 발생시켜 스레드 종료 프로세스를 시작 Program.cs namespace Study07 { class Program { static void Main(string[] args) { new App(); } } } App.cs using System; using System.Threading; namespace Study07 { public class App { public App() { Console.WriteLine("App"); Thread t = new Thread(new ThreadStart(this.TestThread)); t.Start(); Thread.Sleep(3000); t.Abort("Information fro..
-
03/29 Thread 복습 1 (생성 및 실행)C#/수업내용 2021. 3. 29. 21:54
Thread변수 선언, 인스턴스화, 스레드 시작 연습 Program.cs namespace Study07 { class Program { static void Main(string[] args) { new App(); } } } App.cs using System; using System.Threading; namespace Study07 { public class App { public App() { Console.WriteLine("App"); //스레드 변수 선언 Thread t1; //ThreadStart대리자 인스턴스화 ThreadStart threadStart = new ThreadStart(() => { for(int i = 0; i
-
03/25 싱글턴 디자인패턴 연습C#/수업내용 2021. 3. 25. 11:51
싱글턴 하나의 클래스가 하나의 인스턴스만 갖도록 제한, 전역범위에서 인스턴스를 엑세스 생성자를 private으로 만듦 일반적으로 Singleton 인스턴스를 클라이언트가 처음 Singleton 인스턴스를 엑세스할때 생성 Program.cs using System; namespace Study07 { class Program { static void Main(string[] args) { Console.WriteLine("Main"); new App(); } } } App.cs using System; using System.Collections.Generic; using System.IO; using System.Linq; using Newtonsoft.Json; namespace Study07 { pu..
-
03/24 수업내용 메모C#/수업내용 2021. 3. 24. 18:22
2021/03/24 file task SortedList 의존성 주입 외부 인스턴스에 의존 파일 직렬화 직렬화 또는 시리얼라이제이션은 컴퓨터 과학의 데이터 스토리지 문맥에서 데이터 구조나 오브젝트 상태를 동일하거나 다른 컴퓨터 환경에 저장하고 나중에 재구성할 수 있는 포맷으로 변환하는 과정이다. JSON "키-값 쌍" 데이터 포맷 weapon_data.xlsx -> json -> weapon_data.json shancarter.github.io/mr-data-converter/ Mr. Data Converter shancarter.github.io jsonviewer.stack.hu/ Online JSON Viewer jsonviewer.stack.hu 밸런스테이블 바인딩클래스, 맵핑클래스 nuget ..
-
03/24 직렬화, JSON, 파일시스템 연습C#/수업내용 2021. 3. 24. 18:20
Program.cs using System; namespace Study07 { class Program { static void Main(string[] args) { Console.WriteLine("Main"); new App(); } } } App.cs using System; using System.IO; using Newtonsoft.Json; using System.Collections.Generic; using System.Linq; namespace Study07 { public class App { //생성자 public App() { Console.WriteLine("App"); string txt = File.ReadAllText("./cookie_data.json"); Consol..