2022년 2월 19일 토요일

c# 채팅 프로그램 동영상, 클라이언트 서버, ChatSerever, ChatClient

 



c# 채팅 프로그램 동영상, 클라이언트 서버, ChatSerever, ChatClient



https://www.youtube.com/watch?v=T_4rw5Fsm3k&list=PLxU-iZCqT52CA9Y474h7UbqmWqXwIZ-hl&index=3




이미지 썸네일 삭제
(동영상)C#, 윈도우 채팅 클라이언트, Winform 채팅, Chatting Client 만들기

(동영상)C#, 윈도우 채팅 클라이언트, Winform 채팅, Chatting Client 만들기C#, 윈폼기반 채팅채팅 클라이언트 만들기윈폼 기반의 채팅 프로그램(클라이언트)1. 프로젝트명 : ChatClient[채팅 클라이언트][Form1.Designer.cs]namespace ChatClient{partial class Form1{/// <sum…

ojc.asia

이미지 썸네일 삭제
(C#동영상)C# 윈도우 채팅, 채팅 서버, 멀티쓰레드, 델리게이트, Chatting Server

(C#동영상)C# 윈도우 채팅, 채팅 서버, 멀티쓰레드, 델리게이트, Chatting Server윈도우 기반 채팅채팅 서버 만들기윈폼 기반의 채팅 프로그램모든 부분이 콘솔 부분의 채팅 프로그램과 유사하다. 쓰레드 처리 부분과 스레드에서 텍스트 박스에 글을 쓰는 부분을 유심히 보도록 하자. 화면 UI는 다음과 같다.[서버][클라이언트][채팅 서버]1. 프로젝…

ojc.asia

윈도우 기반 채팅

채팅 서버 만들기







사진 삭제링크

사진 설명을 입력하세요.




윈폼 기반의 채팅 프로그램


모든 부분이 콘솔 부분의 채팅 프로그램과 유사하다. 쓰레드 처리 부분과 스레드에서 텍스트 박스에 글을 쓰는 부분을 유심히 보도록 하자. 화면 UI는 다음과 같다.


[서버]

사진 삭제링크

사진 설명을 입력하세요.



[클라이언트]


사진 삭제링크

사진 설명을 입력하세요.


1. 프로젝트명 : ChatServer


[Form1.Desigmer.cs]


  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
namespace ChatServer
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제


  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
{
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
partial class Form1
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
{
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
/// <summary>
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
/// Required designer variable.
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
/// </summary>
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
private System.ComponentModel.IContainer components = null;
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절


  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
/// <summary>
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
/// Clean up any resources being used.
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
/// </summary>
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
protected override void Dispose(bool disposing)
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
{
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
if (disposing && (components != null))
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
{
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
components.Dispose();
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
}
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
base.Dispose(disposing);
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
}
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절


  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
#region Windows Form Designer generated code
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절


  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
/// <summary>
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
/// Required method for Designer support - do not modify
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
/// the contents of this method with the code editor.
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
/// </summary>
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
private void InitializeComponent()
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
{
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
this.txtChatMsg = new System.Windows.Forms.TextBox();
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
this.btnStart = new System.Windows.Forms.Button();
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
this.lblMsg = new System.Windows.Forms.Label();
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
this.SuspendLayout();
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
//
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
// txtChatMsg
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
//
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
this.txtChatMsg.Location = new System.Drawing.Point(27, 15);
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
this.txtChatMsg.Multiline = true;
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
this.txtChatMsg.Name = "txtChatMsg";
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
this.txtChatMsg.ScrollBars = System.Windows.Forms.ScrollBars.Vertical;
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
this.txtChatMsg.Size = new System.Drawing.Size(528, 337);
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
this.txtChatMsg.TabIndex = 0;
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
//
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
// btnStart
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
//
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
this.btnStart.Font = new System.Drawing.Font("맑은 고딕", 15.75F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point);
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
this.btnStart.Location = new System.Drawing.Point(340, 367);
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
this.btnStart.Name = "btnStart";
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
this.btnStart.Size = new System.Drawing.Size(215, 86);
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
this.btnStart.TabIndex = 1;
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
this.btnStart.Tag = "Stop";
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
this.btnStart.Text = "서버 시작";
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
this.btnStart.UseVisualStyleBackColor = true;
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
this.btnStart.Click += new System.EventHandler(this.btnStart_Click);
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
//
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
// lblMsg
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
//
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
this.lblMsg.AutoSize = true;
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
this.lblMsg.Font = new System.Drawing.Font("맑은 고딕", 15.75F, System.Drawing.FontStyle.Bold, System.Drawing.GraphicsUnit.Point);
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
this.lblMsg.Location = new System.Drawing.Point(45, 384);
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
this.lblMsg.Name = "lblMsg";
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
this.lblMsg.Size = new System.Drawing.Size(153, 30);
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
this.lblMsg.TabIndex = 2;
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
this.lblMsg.Tag = "Stop";
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
this.lblMsg.Text = "Server 중지 됨";
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
//
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
// Form1
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
//
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F);
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
this.ClientSize = new System.Drawing.Size(596, 479);
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
this.Controls.Add(this.lblMsg);
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
this.Controls.Add(this.btnStart);
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
this.Controls.Add(this.txtChatMsg);
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
this.Name = "Form1";
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
this.Text = "Form1";
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
this.FormClosed += new System.Windows.Forms.FormClosedEventHandler(this.Form1_FormClosed);
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
this.ResumeLayout(false);
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
this.PerformLayout();
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절


  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
}
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절


  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
#endregion
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절


  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
private TextBox txtChatMsg;
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
private Button btnStart;
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
private Label lblMsg;
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
}
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
}
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제




[Form1.cs]


  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
using System.Collections;
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
using System.Net;
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
using System.Net.Sockets;
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
using System.Text;
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절


  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
namespace ChatServer
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
{
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
//서버의 txtChatMsg 텍스트박스에 글을 쓰기위한 델리게이트
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
//실제 글을 쓰는것은 Form1클래스의 UI쓰레드가 아닌 다른 스레드인 ClientHandler의 스레드 이기에
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
//ClientHandler의 스레드에서 이 델리게이트를 호출하여 텍스트 박스에 글을 쓴다.
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
//(만약 컨트롤을 만든 윈폼의 UI쓰레드가 아닌 다른 스레드에서 텍스트박스에 글을 쓴다면 에러발생)
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
delegate void SetTextDelegate(string s);
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절


  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
public partial class Form1 : Form
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
{
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
TcpListener chatServer = new TcpListener(IPAddress.Parse("127.0.0.1"), 2022);
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
public static ArrayList clientSocketArray = new ArrayList();
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절


  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
public Form1()
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
{
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
InitializeComponent();
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
}
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절


  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
//서버 시작/종료 클릭
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
private void btnStart_Click(object sender, EventArgs e)
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
{
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
try
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
{
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
// 현재 서버가 종료 상태인 경우
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
if (lblMsg.Tag.ToString() == "Stop")
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
{
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
//채팅서버 시작
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
chatServer.Start();
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절


  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
//계속 떠 있으면서 클라이언트의 연결을 기다리는 쓰레드 생성
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
//이 스레드가 실행하는 메소드에서 클라이언트 연결을 받고
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
//생성된 클라이언트 소켓을 clientSocketArray에 담고 새로운 쓰레드를 만들어
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
//접속된 클라이언트 전용으로 채팅을 한다.
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
Thread waitThread = new Thread(new ThreadStart(AcceptClient));
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
waitThread.Start();
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절


  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
lblMsg.Text = "Server 시작됨";
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
lblMsg.Tag = "Start";
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
btnStart.Text = "서버 종료";
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
}
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
else
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
{
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
chatServer.Stop();
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
foreach (Socket soket in Form1.clientSocketArray)
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
{
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
soket.Close();
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
}
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
clientSocketArray.Clear();
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
lblMsg.Text = "Server 중지됨";
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
lblMsg.Tag = "Stop";
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
btnStart.Text = "서버 시작";
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
}
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
}
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
catch (Exception ex)
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
{
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
MessageBox.Show("서버 시작 오류 :" + ex.Message);
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
}
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
}
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절


  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
//윈도우 창을 닫을 때
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
private void Form1_FormClosed(object sender, FormClosedEventArgs e)
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
{
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
Application.Exit();
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
chatServer.Stop();
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
}
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절


  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
//무한루프로 떠 있으면서 클라이언트 접속을 기다린다.
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
private void AcceptClient()
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
{
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
Socket socketClient = null;
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
while (true)
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
{
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
//Socket 생성 및 연결 대기
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
try
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
{
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
//연결을 기다리다가 클라이언트가 접속하면 AcceptSocket 메서드가 실행되어
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
//클라이언트와 상대할 소켓을 리턴 받는다.
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
socketClient = chatServer.AcceptSocket();
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절


  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
//Chatting을 실행하는 ClientHandler 인스턴스화시키고
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
//접속한 클라이언트 접속 소켓을 할당
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
ClientHandler clientHandler = new ClientHandler();
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
clientHandler.ClientHandler_Setup(this, socketClient, this.txtChatMsg);
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절


  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
//클라이언트를 상대하면서 채팅을 수행하는 스레드 생성 후 시작
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
Thread thd_ChatProcess = new Thread(new ThreadStart(clientHandler.Chat_Process));
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
thd_ChatProcess.Start();
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
}
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
catch (System.Exception)
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
{
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
Form1.clientSocketArray.Remove(socketClient); break;
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
}
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
}
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
}
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절


  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
//텍스트박스에 대화내용을 쓰는 메소드
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
public void SetText(string text)
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
{
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
//t.InvokeRequired가 True를 반환하면
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
// Invoke 메소드 호출을 필요로 하는 상태고 즉 현재 스레드가 UI스레드가 아님
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
// 이때 Invoke를 시키면 UI스레드가 델리게이트에 설정된 메소드를 실행해준다.
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
// False를 반환하면 UI스레드가 좁근하는 경우로 컨트롤에 직접 접근해도 문제가 없는 상태다.
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
if (this.txtChatMsg.InvokeRequired)
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
{
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
SetTextDelegate d = new SetTextDelegate(SetText); //델리게이트 선언
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
this.Invoke(d, new object[] { text }); //델리게이트를 통해 글을 쓴다.
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
//이경우 UI스레드를 통해 SetText를 호출함
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
}
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
else
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
{
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
this.txtChatMsg.AppendText(text); //텍스트박스에 글을 씀
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
}
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
}
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
}
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절


  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
public class ClientHandler
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
{
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
private TextBox txtChatMsg;
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
private Socket socketClient;
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
private NetworkStream netStream;
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
private StreamReader strReader;
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
private Form1 form1;
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절


  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
public void ClientHandler_Setup(Form1 form1, Socket socketClient, TextBox txtChatMsg)
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
{
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
this.txtChatMsg = txtChatMsg; //채팅 메시지 출력을 위한 TextBox
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
this.socketClient = socketClient; //클라이언트 접속소켓, 이를 통해 스트림을 만들어 채팅한다.
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
this.netStream = new NetworkStream(socketClient);
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
Form1.clientSocketArray.Add(socketClient); //클라이언트 접속소켓을 List에 담음
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
this.strReader = new StreamReader(netStream);
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
this.form1 = form1;
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
}
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절


  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
public void Chat_Process()
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
{
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
while (true)
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
{
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
try
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
{
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
//문자열을 받음
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
string lstMessage = strReader.ReadLine();
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
if (lstMessage != null && lstMessage != "")
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
{
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
//Form1클래스의 SetText메소드를 호출
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
//SetText에서는 델리게이트를 통해 TextBox에 글을 쓴다.
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
//직접 다른 쓰레드의 TextBox에 값을 쓰면 오류 발생 : Cross-thread operation not valid
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
form1.SetText(lstMessage + "\r\n");
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절


  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
byte[] bytSand_Data = Encoding.Default.GetBytes(lstMessage + "\r\n");
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
lock (Form1.clientSocketArray)
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
{ foreach (Socket soket in Form1.clientSocketArray) {
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
NetworkStream stream = new NetworkStream(soket);
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
stream.Write(bytSand_Data, 0, bytSand_Data.Length); } }
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
}
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
}
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
catch (Exception ex)
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
{
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
MessageBox.Show("채팅 오류 : " + ex.ToString());
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
Form1.clientSocketArray.Remove(socketClient);
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
break;
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
}
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
}
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
}
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
}
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
}
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제



1. 프로젝트명 : ChatClient


[채팅 클라이언트]


[Form1.Designer.cs]


  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
namespace ChatClient
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
{
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
partial class Form1
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
{
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
/// <summary>
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
/// Required designer variable.
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
/// </summary>
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
private System.ComponentModel.IContainer components = null;
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절


  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
/// <summary>
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
/// Clean up any resources being used.
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
/// </summary>
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
/// <param name="disposing">true if managed resources should be disposed; otherwise, false.</param>
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
protected override void Dispose(bool disposing)
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
{
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
if (disposing && (components != null))
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
{
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
components.Dispose();
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
}
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
base.Dispose(disposing);
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
}
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절


  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
#region Windows Form Designer generated code
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절


  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
/// <summary>
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
/// Required method for Designer support - do not modify
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
/// the contents of this method with the code editor.
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
/// </summary>
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
private void InitializeComponent()
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
{
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
this.label1 = new System.Windows.Forms.Label();
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
this.txtName = new System.Windows.Forms.TextBox();
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
this.btnConnect = new System.Windows.Forms.Button();
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
this.txtChatMsg = new System.Windows.Forms.TextBox();
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
this.txtMsg = new System.Windows.Forms.TextBox();
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
this.SuspendLayout();
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
//
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
// label1
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
//
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
this.label1.AutoSize = true;
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
this.label1.Location = new System.Drawing.Point(22, 24);
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
this.label1.Name = "label1";
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
this.label1.Size = new System.Drawing.Size(43, 15);
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
this.label1.TabIndex = 0;
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
this.label1.Text = "대화명";
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
//
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
// txtName
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
//
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
this.txtName.Location = new System.Drawing.Point(71, 21);
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
this.txtName.Name = "txtName";
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
this.txtName.Size = new System.Drawing.Size(117, 23);
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
this.txtName.TabIndex = 1;
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
//
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
// btnConnect
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
//
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
this.btnConnect.Location = new System.Drawing.Point(262, 21);
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
this.btnConnect.Name = "btnConnect";
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
this.btnConnect.Size = new System.Drawing.Size(122, 27);
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
this.btnConnect.TabIndex = 2;
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
this.btnConnect.Text = "입장";
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
this.btnConnect.UseVisualStyleBackColor = true;
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
this.btnConnect.Click += new System.EventHandler(this.btnConnect_Click);
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
//
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
// txtChatMsg
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
//
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
this.txtChatMsg.Location = new System.Drawing.Point(25, 67);
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
this.txtChatMsg.Multiline = true;
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
this.txtChatMsg.Name = "txtChatMsg";
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
this.txtChatMsg.ScrollBars = System.Windows.Forms.ScrollBars.Vertical;
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
this.txtChatMsg.Size = new System.Drawing.Size(359, 183);
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
this.txtChatMsg.TabIndex = 3;
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
//
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
// txtMsg
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
//
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
this.txtMsg.Location = new System.Drawing.Point(27, 267);
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
this.txtMsg.Name = "txtMsg";
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
this.txtMsg.Size = new System.Drawing.Size(357, 23);
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
this.txtMsg.TabIndex = 4;
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
this.txtMsg.KeyPress += new System.Windows.Forms.KeyPressEventHandler(this.txtMsg_KeyPress);
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
//
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
// Form1
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
//
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
this.AutoScaleDimensions = new System.Drawing.SizeF(7F, 15F);
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
this.AutoScaleMode = System.Windows.Forms.AutoScaleMode.Font;
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
this.ClientSize = new System.Drawing.Size(407, 305);
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
this.Controls.Add(this.txtMsg);
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
this.Controls.Add(this.txtChatMsg);
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
this.Controls.Add(this.btnConnect);
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
this.Controls.Add(this.txtName);
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
this.Controls.Add(this.label1);
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
this.Name = "Form1";
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
this.Text = "Form1";
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
this.ResumeLayout(false);
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
this.PerformLayout();
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절


  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
}
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절


  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
#endregion
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절


  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
private Label label1;
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
private TextBox txtName;
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
private Button btnConnect;
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
private TextBox txtChatMsg;
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
private TextBox txtMsg;
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
}
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
}
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절


  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절


  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제



[Form1.cs]


  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
using System.Net;
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
using System.Net.Sockets;
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
using System.Text;
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절


  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
namespace ChatClient
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
{
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
//클라이언트의 텍스트박스에 글을 쓰기위한 델리게이트
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
//실제 글을 쓰는것은 Form1클래스의 쓰레드가 아닌 다른 스레드인 ChatHandler의 스레드 이기에
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
//(만약 컨트롤을 만든 쓰레드가 아닌 다른 스레드에서 텍스트박스에 글을 쓴다면 에러발생)
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
//ChatHandler의 스레드에서 이 델리게이트를 호출하여 서버에서 넘어오는 메시지를 쓴다.
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
delegate void SetTextDelegate(string s);
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절


  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
public partial class Form1 : Form
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
{
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
public Form1()
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
{
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
InitializeComponent();
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
}
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절


  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
TcpClient tcpClient = null;
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
NetworkStream ntwStream = null;
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
//서버와 채팅을 실행
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
ChatHandler chatHandler = new ChatHandler();
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절


  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
//입장 버튼 클릭
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
private void btnConnect_Click(object sender, EventArgs e)
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
{
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
if (btnConnect.Text == "입장")
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
{
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
try
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
{
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
tcpClient = new TcpClient();
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
tcpClient.Connect(IPAddress.Parse("127.0.0.1"), 2022);
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
ntwStream = tcpClient.GetStream();
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절


  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
chatHandler.Setup(this, ntwStream, this.txtChatMsg);
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
Thread chatThread = new Thread(new ThreadStart(chatHandler.ChatProcess));
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
chatThread.Start();
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절


  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
Message_Snd("<" + txtName.Text + "> 님께서 접속 하셨습니다.", true);
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
btnConnect.Text = "나가기";
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
}
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
catch (System.Exception Ex)
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
{
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
MessageBox.Show("Server 오류발생 또는 Start 되지 않았거나\n\n" + Ex.Message, "Client");
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
}
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
}
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
else
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
{
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
Message_Snd("<" + txtName.Text + "> 님께서 접속해제 하셨습니다.", false);
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
btnConnect.Text = "입장";
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
chatHandler.ChatClose();
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
ntwStream.Close();
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
tcpClient.Close();
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
}
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
}
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절


  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
private void Message_Snd(string lstMessage, Boolean Msg)
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
{
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
try
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
{
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
//보낼 데이터를 읽어 Default 형식의 바이트 스트림으로 변환 해서 전송
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
string dataToSend = lstMessage + "\r\n";
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
byte[] data = Encoding.Default.GetBytes(dataToSend);
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
ntwStream.Write(data, 0, data.Length);
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
}
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
catch (Exception Ex)
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
{
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
if (Msg == true)
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
{
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
MessageBox.Show("서버가 Start 되지 않았거나\n\n" + Ex.Message, "Client");
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
btnConnect.Text = "입장";
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
chatHandler.ChatClose();
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
ntwStream.Close();
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
tcpClient.Close();
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
}
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
}
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
}
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절


  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
//다른 스레드인 ChatHandler의 쓰레드에서 호출하는 함수로
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
//델리게이트를 통해 채팅 문자열을 텍스트박스에 씀
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
public void SetText(string text)
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
{
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
if (this.txtChatMsg.InvokeRequired)
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
{
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
SetTextDelegate d = new SetTextDelegate(SetText);
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
this.Invoke(d, new object[] { text });
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
}
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
else
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
{
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
this.txtChatMsg.AppendText(text);
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
}
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
}
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절


  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
private void txtMsg_KeyPress(object sender, KeyPressEventArgs e)
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
{
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
if (e.KeyChar == 13)
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
{
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
//서버에 접속이 된 경우에만 메시지를 서버로 보냄
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
if (btnConnect.Text == "나가기")
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
{
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
Message_Snd("<" + txtName.Text + "> " + txtMsg.Text, true);
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
}
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절


  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
txtMsg.Text = "";
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
e.Handled = true; //이벤트처리중지, KeyUp or Click등
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
}
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
}
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
}
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절


  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
public class ChatHandler
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
{
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절


  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
private TextBox txtChatMsg;
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
private NetworkStream netStream;
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
private StreamReader strReader;
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
private Form1 form1;
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절


  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
public void Setup(Form1 form1, NetworkStream netStream, TextBox txtChatMsg)
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
{
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
this.txtChatMsg = txtChatMsg;
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
this.netStream = netStream;
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
this.form1 = form1;
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
this.netStream = netStream;
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
this.strReader = new StreamReader(netStream);
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
}
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절


  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
public void ChatClose()
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
{
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
netStream.Close();
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
strReader.Close();
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
}
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절


  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
public void ChatProcess()
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
{
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
while (true)
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
{
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
try
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
{
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
//문자열을 받음
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
string lstMessage = strReader.ReadLine();
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절


  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
if (lstMessage != null && lstMessage != "")
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
{
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
//SetText 메서드에서 델리게이트를 이용하여 서버에서 넘어오는 메시지를 쓴다.
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
form1.SetText(lstMessage + "\r\n");
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
}
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
}
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
catch (System.Exception)
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
{
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
break;
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
}
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
}
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
}
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절


  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
}
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절
}
  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절


  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제
  • 0열 선택0열 다음에 열 추가
  • 0행 선택0행 다음에 행 추가
셀 전체 선택
열 너비 조절
행 높이 조절


  • 셀 병합
  • 행 분할
  • 열 분할
  • 너비 맞춤
  • 삭제



#채팅서버, #채팅클라이언트, #채팅소스, #시샵채팅, #닷넷채팅, #채팅프로그램, #닷넷교육, #시샵교육, #닷넷학원, #시샵학원, #닷넷동영상, 채팅서버, 채팅클라이언트, 채팅소스, 시샵채팅, 닷넷채팅, 채팅프로그램, 닷넷교육, 시샵교육, 닷넷학원, 시샵학원, 닷넷동영상,

#채팅소스, #채팅강좌, #윈도우채팅소스, #시샵채팅, #콘솔채팅, #자바채팅소스, #닷넷채팅, #닷넷채팅소스, #시샵교육, #닷넷교육, #시샵학원, #닷넷학원, 채팅소스, 채팅강좌, 윈도우채팅소스, 시샵채팅, 콘솔채팅, 자바채팅소스, 닷넷채팅, 닷넷채팅소스, 시샵교육, 닷넷교육, 시샵학원, 닷넷학원,




C# 동영상, 윈폼, HelloWorld 콘솔프로그램에서 윈폼, 윈도우 띄우기

 C# 동영상, 윈폼, HelloWorld  콘솔프로그램에서 윈폼, 윈도우 띄우기

http://ojc.asia/bbs/board.php?bo_table=LecCsharp&wr_id=422 


C# 동영상, 윈폼, HelloWorld 콘솔프로그램에서 윈폼, 윈도우 띄우기

C# 동영상, 윈폼, HelloWorld 콘솔프로그램에서 윈폼, 윈도우 띄우기윈폼, HelloWorld콘솔프로그램에서 윈폼 띄우기VS 2022C# 윈폼(Application 클래스)C#.NET 프레임워크에서는 간단히 윈도우를 만들 수 있도

ojc.asia






윈폼, HelloWorld

콘솔프로그램에서 윈폼 띄우기


VS 2022






C# 윈폼(Application 클래스)


C#.NET 프레임워크에서는 간단히 윈도우를 만들 수 있도록 Winform 클래스 라이브러리를 제공하며 다음과 같은 방법으로 윈도우를 생성한다. 


  • System.Windows.Forms.Form 클래스에서 파생된 윈도우폼 클래스 선언
  • 위에서 만든 클래스의 인스턴스를 System.Windows.Forms.Application.Run( Form을 상속받은 클래스의 객체 ) 메소드에 매개변수로 넘겨 호출하면서 윈폼 응용 프로그램을 시작한다.


Application 클래스의 기능은 윈도우 응용프로그램을 시작하고 종료시키고, 윈도우 메시지를 처리하는 일을 한다.


응용프로그램의 시작은 Application.Run(), 응용프로그램의 종료는 Application.Exit()인데 Exit() 메소드가 호출되었다고 바로 종료되는 것은 아니다. 이 메소드가 하는 일은 응용프로그램의 모든 윈도우를 닫은 후 Run() 메소드가 Return되도록 하는 것이므로 Run() 메소드 뒷부분에 프로그램이 종료되면서 할 일이 있다면 해당 코드를 기술하면 된다.


[별도 이벤트처리 메소드를 만들고 델리게이트의 인자로]


콘솔 프로젝트에서 System.Windows.Forms를 참조 추가해야 한다.


using System;

using System.Windows.Forms;


class Program : Form

    {

        static void Main(string[] args)

        {

            Program form = new Program();

            form.Click += new EventHandler(form.Form_Click);

            Console.WriteLine("윈도우 시작...");

            Application.Run(form);

            Console.WriteLine("윈도우 종료...");

        }


        void Form_Click(object sender, EventArgs e)

        {

            Console.WriteLine("폼클릭 이벤트...");

            Application.Exit();

        }

    }



[람다식을 이용한 무명함수로 이벤트 처리]


using System;

using System.Windows.Forms;


namespace ConsoleApplication9

{

    class Program : Form    {

        static void Main(string[] args)        {

            Program form = new Program();

            form.Click += new EventHandler(

                   (sender, eventArgs) =>

                   {

                      Console.WriteLine("폼클릭 이벤트...");

                      Application.Exit();

                   });

            Console.WriteLine("윈도우 시작...");

            Application.Run(form);

            Console.WriteLine("윈도우 종료...");            

        }

    }

}






#윈폼, #윈폼HelloWorld, #콘솔프로그램, #Application, #Winform, #Application.Run, #닷넷교육, #닷넷동영상, #시샵동영상, 윈폼, 윈폼HelloWorld, 콘솔프로그램, Application, Winform, Application.Run, 닷넷교육, 닷넷동영상, 시샵동영상, C#교육, C#학원

(C#교육동영상)C# ADO.NET 실습 ODP.NET/ODAC 설치 오라클 함수 호출 실습, C#학원, WPF학원, 닷넷학원, 자바학원

  (C#교육동영상)C# ADO.NET 실습  ODP.NET/ODAC 설치  오라클 함수 호출 실습, C#학원, WPF학원, 닷넷학원, 자바학원 https://www.youtube.com/watch?v=qIPU85yAlzc&list=PLxU-i...