본문 바로가기
2_ 바삭바삭 프로그래밍/C# and Visual C++

C# - GPS_timer(2) : Server

by 준환이형님_ 2010. 7. 23.


GPS_timer 는 크게 서버(PC역할_폼형식)와 클라이언트(단말기역할_콘솔형식)로 나누어져 있습니다. 서버는 단지 출력의 역할을 합니다.

실행시 클라이언트의 편의를 위해 자신의 아이피를 화면에 출력해 줍니다.

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

namespace server
{
    class Program
    {
        static void Main(string[] args)
        {
            string st_message;

            IPHostEntry IPHost = Dns.GetHostByName(Dns.GetHostName());          
            IPAddress ip = IPAddress.Parse(IPHost.AddressList[0].ToString());         
           
            IPEndPoint endPoint = new IPEndPoint(ip, 8000);//인자값 : IPAddress,포트번호
             Console.WriteLine("클라이언트의 요청을 기다리고 있습니다 (서버주소 : " + IPHost.AddressList[0].ToString()+")");
            
            while (true)
            {
                //////////////////////////////////////////////////////////////////////////수신부

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

                socket.Bind(endPoint);

                socket.Listen(10);
   
                Socket clientSocket = socket.Accept();

                Console.WriteLine("클라이언트로부터 데이터를 수신하였습니다.");

                byte[] receiveBuffer = new byte[512];


                try
                {
                    int length = clientSocket.Receive(receiveBuffer, receiveBuffer.Length, SocketFlags.None);
                    string result = Encoding.UTF8.GetString(receiveBuffer, 0, length);

                    Console.WriteLine("받은 데이터 : " + result);
                    socket.Close();
                }
                    
                catch (SocketException e)
                {
 
                }
            }
        }
    }
}