▩▩ 프로그래밍 ▩▩/Socket Programming

C# 소켓 프로그래밍 완전 기초 ( 클라이언트 프로그램 )

남쿤 2013. 3. 11. 15:48
반응형
 using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net;
using System.Net.Sockets;
using System.IO;

namespace test_client
{
    class SimpleTcpClient
    {
        public static void Main()
        {
            string data;
            string input;
            string ipdata;
            string portdata;

            IPEndPoint ipep = new IPEndPoint(IPAddress.Parse("127.0.0.1"), 9050);
            // ("xxx = IP ")  // 네트워크의 끝점을 IP번호와 포트번호 객체화 시킵니다.

            Socket server = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);

            try
            {
                server.Connect(ipep);//server socket에 연결합니다.
            }
            catch (SocketException e)
            {
                Console.WriteLine("Unable to connect to server.");
                Console.WriteLine(e.ToString());
                return;
            }

            //읽고 쓰기위한 스트림을 생성합니다.
            NetworkStream ns = new NetworkStream(server);
            StreamReader sr = new StreamReader(ns);
            StreamWriter sw = new StreamWriter(ns);


            data = sr.ReadLine();
            Console.WriteLine(data);
            ipdata = sr.ReadLine();
            portdata = sr.ReadLine();



            //data = sr.ReadLine();
            Console.Write("Server Send {0}-{1} <<", ipdata, portdata);
            sw.Flush();

            while (true)
            {
                input = Console.ReadLine();

                if (input == "exit") break;

                sw.WriteLine(input);
                sw.Flush();

                data = sr.ReadLine();

                Console.WriteLine("Server Receive {0}-{1} << {2} ", ipep.Address, ipep.Port, data);
                sw.Flush();

                Console.Write("Server Send {0}-{1} <<", ipdata, portdata);
                sw.Flush();

            }

            Console.WriteLine("Disconnecting from server...");
            ns.Close();
            sw.Close();
            ns.Close();
            server.Shutdown(SocketShutdown.Both);
            server.Close();
        }
    }
}
 

출처 : http://keep2smile.tistory.com/trackback/146
반응형