본문으로 바로가기

C# TCP/IP Client Part.1 [기본소스]

category C# 2019. 3. 21. 14:35
반응형

기본적으로 Client에 연결하기 위해 필요한 함수들은 뭐가 있을까? 

 기본으로 아래 5가지가 필요하다고 생각한다. 
 
 1. 연결하기위한 서버측 포트번호
 2. 연결하기위한 서버측 주소 
 3. 클라이언트 오픈을 위한 함수 
 4. 클라이언트 연결함수
 5. 클라이언트 종료함수
 
 한번 코딩해보자고..
class Connection
    {
        //서버측 포트를 받아오기 위한 변수생성
        private int _Port;
        //서버측 주소를 받아오기 위한 주소생성
        private String _Address;
        //TCP클라이언트 연결을 위한 변수 생성
        TcpClient Client;
        //클라이언트 연결 기준 변수
        private Boolean ClientCon = false;
        //클라이언트 접속 함수
        NetworkStream Stream;
        //클라이언트 쓰기 읽기 함수
        StreamReader Read;
        StreamWriter Write;


        //서버측 포트를 받아오기 위한 함수
        public int fn_Port(int port)
        {
            _Port = port;

            return _Port;
        }
        //서버측 주소를 받아오기 위한 함수
        public String fn_Add(String address)
        {
            _Address = address;
            return _Address;
        }
        //클라이언트를 열기위한 함수
        public int fn_Open()
        {
            int iret = 0;
            if (!ClientCon)
            {
               
                iret = fn_Connection();
            }
            else
            {
                fn_DisConnection();
                iret = -1;
            }
            return iret;

        }
        //클라이언트 연결 함수
        public int fn_Connection()
        {
            int iret = 0;
            try
            {
                if(!ClientCon)
                {
                    // 서버측 주소와 포트를 받아와 연결
                    Client = new TcpClient(_Address, _Port);
                    //클라이언트 변수를 통해 스트림 연결(네트워크연결)
                    Stream = Client.GetStream();
                    Read = new StreamReader(Stream);
                    Write = new StreamWriter(Stream);

                    ClientCon = true;
                    Console.WriteLine("연결 성공");
                }
            }
            catch
            {
                ClientCon = false;
                iret = -2;
                Console.Write("연결 에러");
            }
            return iret;

        }
        //클라이언트 종료함수
        public int fn_DisConnection()
        {
            int iret = 0;
            ClientCon = false;
            try
            {
                if (Read != null) Read.Close();
                if (Write != null) Write.Close();
                if (Client != null) Client.Close();
                if (Stream != null) Stream.Close();
            }
            catch
            {
                iret = -2;
            }

            return iret;

        }

        static void Main(string[] args)
        {
            Connection con = new Connection();
            con.fn_Add("");
            con.fn_Port();
            con.fn_Open();
            
        }
    }

 

[C#] - C# TCP/IP Client Part.2

 

C# TCP/IP Client Part.2

(C# WindoForm) 두번 째 Client 소스 1. Send 함수 추가 [서버에 메시지 보내기 함수] 2. Receive 함수 추가 [서버가 보낸 메시지 받기 함수] 3. Delegate 함수 추가  -> 비동기 통신을 하기 위해 Receive 함수..

dodo1054.tistory.com

[C#] - C# TCP/IP Client Part.3

[C#] - C# TCP/IP Client 테스트 소스

 

C# TCP/IP Client 테스트 소스

C# WinForm으로 작성하였습니다. Test 소스로 작성한거라서 조금 복잡하고 지저분해보일 수 있으실수도 ㅠ 궁금한 점이나 부족한 점은 꼭 댓글남겨주세요^^ 소스는 올리도록하겠습니다. using System; u

dodo1054.tistory.com

 

반응형

'C#' 카테고리의 다른 글

C# Byte 배열로 형변환 하기  (0) 2019.07.15
C# Postgresql 연동하기  (0) 2019.04.23
C# 폼에서 폼으로 파라미터 인수 넘기기  (0) 2019.04.17
C# TCP/IP Client Part.3  (9) 2019.03.26
C# TCP/IP Client Part.2  (0) 2019.03.22