본문 바로가기

Delphi Tip/통신9

델파이 기본 소켓의 사용 델파이 기본 소켓의 사용 TCP/UDP 란? TCP 연결지향 프로토콜이다. 연결을 시도해 연결이 성공하면 일종의 터널링이 확보되어 이 터널을 통하여 데이터를 전송하고 받는다. 전송된 데이터의 무결성이 확보된다. 데이터의 전송이 제대로 되지 않을 경우에는 목적지에 제대로 전송될때까지 반복한다. 안정적인 데이터 전송을 원할경우에 이를 사용한다. UDP User Datagram Protocol 이라고 불리운다. 전송된 데이터가 중간에 유실될 수도 있고, 순서가 뒤바뀔 수도 있다. 환장한다. 그럼 왜 쓰나? 속도가 빠르다. 데이터의 안정성을 잃어버리는 대신에 속도를 보장한다. 멀티미디어 데이터 전송부분에서 종종 사용된다. 프로토콜이란? 일반(형식, 종료문자) 프로토콜이라 함은 TCP/UDP 이외에도 사용자가 정.. 2024. 1. 2.
델파이 RS232 통신 RS232 통신 RS232 RS-232는 시리얼 통신을 위한 표준 통신 프로토콜. 이것은 전자 장치 간에 데이터를 송수신하는 데 사용되며, 초기에는 컴퓨터 및 주변 장치 간의 통신을 위해 개발되다. 전압 레벨 RS-232는 양방향 통신을 위해 표준 전압 레벨을 정의다. 이것은 대부분 양의 전압과 음의 전압 사이의 차이로 데이터를 나타낸다. 전형적인 레벨은 +12V와 -12V 또는 +5V와 -5V와 같은 값을 가진다. 비동기 통신 RS-232는 비동기 통신을 기반으로 하며, 데이터를 보낼 때 시작 비트와 정지 비트를 사용하여 데이터 프레임을 형성합니다. 이를 통해 데이터의 시작과 끝을 정의하고 데이터 비트를 보내는 장치 간의 동기화를 가능하게 한다. 다중 데이터 송수신 RS-232는 여러 데이터 비트를 전.. 2023. 11. 3.
델파이 소켓(통신) 프로그램 델파이 소켓 프로그램 델파이 소켓(통신) 프로그램 송수신 방식 1. 심플렉스 (Simplex) : 한 지점에서 다른 지점으로만 보내는 방식 2. 하프 – 듀플렉스 (Half - Duplex) : 동시에 양방향으로 통신할 수는 없고 한 지점에서 다른 지점으로 보낼 때는 받는 지점에서는 받기만 할 수 있고 보낼 수는 없는 방식 3. 풀 – 듀플렉스 (Full - Duplex) : 양방향 통신이 가능한 방식 데이터 전송에 필요한 요소 1. Ip 2. Port 3. Packet 네트워크 통신 유형 1. TCP (Transmission Control Protocol) : 목적지와 일단 접속을 이룬 다음에 데이터를 전송하는 연결 지향 프로토콜 2. UDP (User Datagram Protocol) : 사전 접속을.. 2023. 10. 23.
소켓 프로그래밍 기법의 활용 6편 마무리 소켓 프로그래밍 기법의 활용 6편 마무리 블로킹 연결을 이용한 파일 전송 예제 소켓을 이용한 프로그래밍을 할 때 앞서 설명한 채팅 어플리케이션과 같이 연결을 유지하면서 통신을 할 필요가 있을 때에는 중단되지 않는 논-블로킹 연결을 지원하도록 해야 하지만, 경우에 따라서는 전송하는 측과 전송받는 측의 데이터 전송에 있어서 서로 비동기 적으로 처리하는 것이 효율적일 때가 많다. 이럴 때에는 블로킹 연결을 이용하게 되는데, 블로킹 연결을 이용하여 소켓 프로그래밍을 하는 것은 해당되는 연결의 쓰레드를 생성하여 이를 실행하도록 하는 형태로 제작해야하기 때문에 논-블로킹 연결을 지원하는 어플리케이션에 비해 다소 까다로운 점이 많다. 그러면, 블로킹 연결을 통해 클라이언트에서 서버로 지정된 파일을 전송하는 예제를 작.. 2021. 12. 27.
소켓 프로그래밍 기법의 활용 5편 소켓 프로그래밍 기법의 활용 5편 1:1 채팅 예제의 제작 그러면, 실제로 예제를 만들어 나가면서 지금까지 설명한 것들을 익혀 보도록 하자. 이번에 만들 예제는 1:1 채팅을 가능하게 하는 프로그램으로 하나의 어플리케이션에 TClientSocket과 TServerSocket을 모두 올려 놓고, 이 프로그램이 경우에 따라서 채팅 서버가 되기도 하고, 클라이언트가 되기도 하는 프로그램이다. 본래 채팅 프로그램을 제대로 만들려면 서버 프로그램에 여러 개의 클라이언트가 접속하는 형태로 제작해야 하지만, 이 예제는 네트워크 프로그래밍의 기본을 이해시키려는 목적으로 제작하는 것이므로 1:1 채팅 만을 지원하도록 하였다. 이런 식으로 클라이언트와 서버의 기능을 모두 갖춘 프로그램은 프로그램을 테스트 하기에 편리하고 .. 2021. 12. 26.
소켓 프로그래밍 기법의 활용 4편 소켓 프로그래밍 기법의 활용 4편 서버 소켓의 이용 어플리케이션을 TCP/IP 서버로 둔갑시키려면 먼저 서버 소켓 컴포넌트인 TServerSocket 을 폼이나 데이터 모듈에 올려 놓는다. ​ 서버 소켓에서 제공하려는 서비스나 클라이언트의 요구를 기다릴 때 사용할 포트를 지정할 수 있다. 각 서버 소켓 컴포넌트는 서버 윈도우 소켓 객체(TServerWinSocket)를 사용하여 리스닝 연결에서의 서버측 종료점을 이루게 한다. 또한, 서버가 받아들인 클라이언트 소켓과의 연결에서의 서버 종료점에 대한 클라이언트 윈도우 소켓 객체(TServerClientWinSocket)도 활용한다. ● 포트의 지정 서버 소켓이 클라이언트의 요구를 기다리기 전에 (이런 기다림을 ‘listening’ 이라고 한다.) 서버가 사.. 2021. 12. 25.
소켓 프로그래밍 기법의 활용 3편 소켓 프로그래밍 기법의 활용 3편 블로킹 연결 (Blocking connections) 클라이언트 소켓에서는 ClientType 프로퍼티를 ctBlocking으로 설정하면 블로킹 연결이 생성된다. 클라이언트 어플리케이션에 따라서는 읽고 쓰는 데에 새로운 쓰레드를 생성하기를 원할 수도 있는데, 이렇게 하면 어플리케이션은 연결이 완료되어 데이터를 읽고, 쓸 때까지 다른 쓰레드를 실행할 수 있다. 서버 소켓에서는 ServerType 프로퍼티를 stThreadBlocking으로 설정하면 블로킹 연결이 생성된다. 블로킹 연결은 연결에 의한 데이터 교환이 될 때까지 실행이 되지 않으므로, 다른 클라이언트 연결에 대해서 항상 새로운 쓰레드가 생성된다. 1)블로킹 연결과 쓰레드의 이용 클라이언트 소켓은 블로킹 연결이 .. 2021. 12. 21.
소켓 프로그래밍 기법의 활용 2편 소켓 프로그래밍 기법의 활용 2편 연결의 종류 소켓 연결에는 연결의 초기화와 어떤 로컬 소켓이 연결되는지에 따라 기본적으로 다음과 같은 세가지로 나누어 볼 수 있다. 1. 클라이언트 연결 (Client connections) 클라이언트 연결은 로컬 시스템의 클라이언트 소켓을 리모트 시스템의 서버 소켓에 연결하는 것을 말한다. 클라이언트 연결은 클라이언트 소켓에 의해 개시되고 초기화된다. 먼저 클라이언트 소켓이 연결하고자 하는 서버 소켓에 대한 정보를 제공하면, 클라이언트 소켓이 서버 소켓을 찾게 되고, 서버의 위치를 파악하게 되면 연결을 요구한다. 서버 소켓은 클라이언트 요구에 대한 큐(queue)를 가지고 있어서 시간이 될 때마다 연결을 시도한다. 일단 서버 소켓이 클라이언트 연결을 받아들이면 클라이언.. 2021. 12. 20.
소켓 프로그래밍 기법의 활용 1편 소켓 프로그래밍 기법의 활용 1편 소켓 프로그래밍 기법의 활용 (Using Socket Programming Techniques) 윈도우에서의 프로세스간 통신 기법으로는 명명된 파이프, DCOM, DDE, 클립 보드와 각종 네트워크 프로그래밍 기법 등을 이용할 수 있다. 이 중에서도 윈도우 95와 윈도우 NT 3.5 버전부터는 내부적인 통신 프로토콜로 기존의 NetBIEU와 함께 TCP/IP를 사실상의 표준으로 인정하고 이를 지원하고 있다. 또한, DCOM과 윈도우 소켓을 프로세스간 통신의 표준으로 삼고 있으며, 윈도우 NT 4.0 부터는 윈도우 소켓의 2.0 버전(WinSock 2.0)을 사용하여 보다 강화된 소켓 프로그래밍을 지원하게 되었다. 이러한 소켓 프로그래밍을 위해서는 Win32에서 지원하는 .. 2021. 12. 16.