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을 통해서 이루어짐.
}
}
}
'1. IT Story > Development' 카테고리의 다른 글
C# 채팅 프로그램(Client) (0) | 2012.03.07 |
---|---|
선택정렬응용 (0) | 2012.03.07 |
이름정렬 (0) | 2012.03.07 |
링크드리스트를 이용한 학생관리Pro (0) | 2012.03.07 |
링크드리스트(Linked list) (0) | 2012.03.07 |
이진탐색+Recrusion (되부름 알고리즘) (0) | 2012.03.07 |
Update Instructions - Mango Beta 2 for WPDevs - 2.0 (0) | 2011.08.22 |
Windows Phone SDK 7.1 Beta 2 설치하기 (0) | 2011.08.15 |