블로그 이미지
Magic_kit
study 관련자료를 한곳으로 자기 개발 목적으로 재태크 재무 관리 목적으로 일상생활의 팁을 공유 하기 위하여 블로그를 개설 하였습니다.

calendar

1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
반응형

Category

Recent Post

Recent Comment

Archive

반응형
 TCPClient.Cs
 소스(TcpClientExample.cs)

using System;
using System.IO;
using System.Text;
using System.Net;
using System.Net.Sockets;

class TcpClientTest {
        static void Main(string[] args)
        {
                TcpClient client = null;
                try {
                     //LocalHost에 지정 포트로 TCP Connection을 생성하고 데이터를 송수신 하기
                     //위한 스트림을 얻는다.
                        client = new TcpClient();
                        client.Connect("localhost", 5001);
                        NetworkStream writeStream = client.GetStream();

                        //보낼 데이터를 읽어 Default 형식의 바이트 스트림으로 변환
                        string dataToSend = Console.ReadLine();        
                        byte [] data = Encoding.Default.GetBytes
                                            (dataToSend);                                                        
                        
                        while(true)
                        {                                                                
                                dataToSend += "\r\n";                                
                                data = Encoding.Default.GetBytes
                                           (dataToSend);                                
                                
                                writeStream.Write(data,0,data.Length);                                
                                
                                if (dataToSend.IndexOf("<EOF>") > -1) break;
                                        
                                dataToSend = Console.ReadLine();
                        }                                
                }
                catch(Exception ex) {
                        Console.WriteLine(ex.ToString());
                }
                finally {
                        client.Close();
                }
        }
}

 TCPServer.Cs
 using System;
using System.IO;
using System.Text;
using System.Net;
using System.Net.Sockets;

class Server
{
   public static void Main()
   {  
          NetworkStream stream = null;
          TcpListener tcpListener = null;
          StreamReader reader = null;
          Socket clientsocket = null;
      try
      {              
                 //IP주소를 나타내는 객체를 생성,TcpListener를 생성시 인자로 사용할려고
                 IPAddress ipAd = IPAddress.Parse("127.0.0.1");

                 //TcpListener Class를 이용하여 클라이언트의 연결을 받아 들인다.
                 tcpListener = new TcpListener(ipAd, 5001);
                 tcpListener.Start();

        //Client의 접속이 올때 까지 Block 되는 부분, 대개 이부분을 Thread로 만들어 보내 버린다.
                 //백그라운드 Thread에 처리를 맡긴다.
                 clientsocket = tcpListener.AcceptSocket();

                 //클라이언트의 데이터를 읽고, 쓰기 위한 스트림을 만든다.
                 stream = new NetworkStream(clientsocket);
                                 
             Encoding encode = System.Text.Encoding.GetEncoding("ks_c_5601-1987");
             reader = new StreamReader(stream, encode);
            
                 while(true)
                 {                                
                         string str = reader.ReadLine();        
                         Console.WriteLine(str);                        
                 }                
      }
      catch (Exception e )
      {
         Console.WriteLine(e.ToString());
      }
          finally {
                clientsocket.Close();
          }
   }
}



반응형

'A Concern Interest > C#소켓프로그래밍' 카테고리의 다른 글

03장 C# Socket 활용  (0) 2009.09.15
01장.C# Socket 이란?  (0) 2009.09.15
posted by Magic_kit