2012. 6. 3. 18:09

[출처 : http://blog.naver.com/mankeys?Redirect=Log&logNo=138953202 ]


1. TCP Server


using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.IO;

using System.Net;

using System.Net.Sockets;


namespace ConsoleApplication_TCPEcho01

{

    class TCP_Server

    {

        static void Main(string[] args)

        {

                IPAddress ipAddress = Dns.GetHostEntry("localhost").AddressList[0];

                Console.WriteLine("ipAddress"+ipAddress);

                TcpListener tcp_Listener = new TcpListener(ipAddress, 5555);

                tcp_Listener.Start();

                while (true)

                {

                    Console.WriteLine("1. EchoServer 대기상태.......");


                    TcpClient client = tcp_Listener.AcceptTcpClient();      //클라이언트와 접속

                    Console.WriteLine("2. Echo Client 접속....");

                    

                    NetworkStream ns = client.GetStream();

                    StreamReader reader = new StreamReader(ns);

                    string msg = reader.ReadLine();                     //메시지를 읽어 옴

                    

                    Console.WriteLine("3. [클라이언트 메시지]:" + msg);     //메시지 출력

                    

                    StreamWriter writer = new StreamWriter(ns);

                    writer.WriteLine(msg);                              //네트워크 스트림에 쓰는 듯 함

                    writer.Flush();


                    Console.WriteLine("4. [Echo1]:" + msg);

                    writer.WriteLine(msg);

                    writer.Flush();

                    

                    Console.WriteLine("5. [Echo2]:" + msg);

                    Console.WriteLine("6. 스트림과 TcpClient Close");

                    

                    writer.Close();

                    reader.Close();

                    client.Close();


                }

        }

    }

}


2. TCP Client

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net;
using System.Net.Sockets;
using System.IO;

namespace ConsoleApplication_TCPEcho01
{
    public class TCP_Client
    {
        public static void Main(string[] arg)
        {
            string args0 = "localhost";     //ip
            string args1 = "5555";          //포트 번호
            string args2 = "안녕";            //메시지

            TcpClient client = new TcpClient(args0, Int32.Parse(args1));    // (ip주소 , 포트 번호)
            NetworkStream ns = client.GetStream();
            StreamWriter writer = new StreamWriter(ns);

            writer.WriteLine(args2);
            writer.Flush();
            Console.WriteLine(args2 + "를 전송합니다. ");

            StreamReader reader = new StreamReader(ns);

            string msg1 = reader.ReadLine();                //네트워크에서 스트림을 읽음
            Console.WriteLine("[Echo1]: " + msg1);
            string msg2 = reader.ReadLine();
            Console.WriteLine("[Echo2]: " + msg2);
            
            writer.Close();
            reader.Close();
            client.Close();

            Console.ReadLine();

        }// Main


    }// class

Posted by k1rha