C# 채팅 프로그램(Server)
 


using System;

using System.Collections.Generic;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Linq;

using System.Text;

using System.Windows.Forms;

using System.IO;

using System.Net;

using System.Net.Sockets;

using System.Threading;


namespace Ex_chatserver

{

    public partial class MainForm : Form

    {


        private delegate void AddTextDelegate(String strText); // Cross-Thread 호출을 실행하기 위해사용


        public MainForm()

        {

            InitializeComponent();

        }


        private void Form1_Load(object sender, EventArgs e) //form1이 로드되면서 시작.

        {

            //서버를 시작

            Thread t1 = new Thread(new ThreadStart(StartListen));

            t1.Start();


        }

        


        private void StartListen()

        {

            IPAddress addr = new IPAddress(long.Parse("127.0.0.1")); //ip주소받기

            TcpListener Server = new TcpListener(addr, 8080);


            AddTextDelegate AddText = new AddTextDelegate(txtClient.AppendText);


            String MessageStr = "안녕하세요, 서버에서 보냅니다.";


            Server.Start();//연결요청 대기시작


            Invoke(AddText, "Listening을 시작합니다..\r\n");


            TcpClient Client = Server.AcceptTcpClient();//연결요청수락

            Invoke(AddText, "Client와 연결되었습니다..\r\n");


            NetworkStream stream = Client.GetStream();//NetWorkStream 얻기


            StreamWriter writer = new StreamWriter(stream);//메시지 보내기

            writer.WriteLine(MessageStr);

            writer.Flush();

            Invoke(AddText, "Client에 메시지를 보냈습니다..\r\n");


            Client.Close();//연결닫기

            Server.Stop();

            Invoke(AddText, "서버와 연결 종료..\r\n");


            //TcpListener는 Client의 요청에 귀기울(Listen)이고 있다가 Client가 연결을 요청해오면(Connect) Client의 연결요청을 수락(AcceptTcpClient)합니다.

            //여기까지 진행되고 나면 실제 데이터를 주고 받는 통신은 NetWorkStream을 통해서 이루어짐.

        }

       

    }

}



참고자료
 

비주얼 C# 2005 익스프레스로 배우는 C# 2.0 프로그래밍 
MSDN http://msdn.microsoft.com/ko-kr/default.aspx 


블로그 이미지

운명을바꾸는자

IT와 함께 살아가는 삶

,