KR20020033219A - 연결지향 소켓 인터페이스 구현방법 - Google Patents
연결지향 소켓 인터페이스 구현방법 Download PDFInfo
- Publication number
- KR20020033219A KR20020033219A KR1020000063835A KR20000063835A KR20020033219A KR 20020033219 A KR20020033219 A KR 20020033219A KR 1020000063835 A KR1020000063835 A KR 1020000063835A KR 20000063835 A KR20000063835 A KR 20000063835A KR 20020033219 A KR20020033219 A KR 20020033219A
- Authority
- KR
- South Korea
- Prior art keywords
- socket
- connection
- server
- client
- data
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims abstract description 37
- 238000004891 communication Methods 0.000 claims abstract description 13
- 238000012545 processing Methods 0.000 claims description 8
- 230000005540 biological transmission Effects 0.000 abstract description 13
- 238000010586 diagram Methods 0.000 description 8
- 230000000903 blocking effect Effects 0.000 description 5
- 238000011161 development Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000002159 abnormal effect Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L69/00—Network arrangements, protocols or services independent of the application payload and not provided for in the other groups of this subclass
- H04L69/16—Implementation or adaptation of Internet protocol [IP], of transmission control protocol [TCP] or of user datagram protocol [UDP]
- H04L69/161—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields
- H04L69/162—Implementation details of TCP/IP or UDP/IP stack architecture; Specification of modified or new header fields involving adaptations of sockets based mechanisms
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04L—TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
- H04L67/00—Network arrangements or protocols for supporting network services or applications
- H04L67/01—Protocols
Landscapes
- Engineering & Computer Science (AREA)
- Computer Networks & Wireless Communication (AREA)
- Signal Processing (AREA)
- Computer Security & Cryptography (AREA)
- Computer And Data Communications (AREA)
- Communication Control (AREA)
Abstract
본 발명은 서버 클라이언트 시스템에 있어서, 연결지향 소켓 인터페이스를 구현하여 TCP/IP 응용프로그램의 개발 또는 작성을 용이하게 한 연결지향 소켓 인터페이스 구현방법을 제공하기 위한 것으로, 이러한 본 발명은, 연결지향 소켓 인터페이스 모듈을 초기화하고 서버측이 클라이언트측의 연결요구를 대기하는 포트번호 및 연결식별자를 제공하는 단계와; 사용자가 서버측 인터페이스 함수를 주기적으로 호출하여 클라이언트측으로부터의 소켓 연결요구가 발생되는지를 확인하는 단계와; 클라이언트측의 소켓 연결요구가 발생되면, 서버와 통신할 소켓에 대한 연결식별자를 클라이언트측 사용자에게 부여하여 상기 연결식별자를 통해 서버측과 클라이언트측간의 데이터 통신이 수행되도록 하는 단계와; 서버측과 클라이언트측간의 연결 소켓을 통한 데이터 통신이 완료되거나 일측의 소켓이 비정상적으로 종료되는 경우에는 상기 소켓 연결을 해제하는 단계를 수행하여, 자세한 소켓관련 시스템 호출을 모르는 경우에도 TCP/IP 응용프로그램을 용이하게 작성할 수 있고, 기본적으로 non-blocking으로 처리되는 인터페이스를 제공함으로써 다중 연결관리 및 다중 프로세서에서 동작하는 응용프로그램에의 적용이 가능하게 된다.
Description
본 발명은 서버 클라이언트 시스템의 소켓 인터페이스(Socket Interface)에 관한 것으로, 특히 연결지향 소켓 인터페이스(Connection-Oriented SocketInterface)를 구현하여 TCP/IP(Transmission Control Protocol/Internet Protocol) 응용프로그램의 개발 또는 작성을 용이하게 한 연결지향 소켓 인터페이스 구현방법에 관한 것이다.
일반적으로 서버 클라이언트 시스템에서 동작하는 TCP/IP 응용프로그램을 작성하고자 할 때 거의 모든 플랫폼(Platform, 예를 들어 windows 또는 UNIX)에서 제공하는 소켓(socket)을 사용한다.
특히, 연결지향(connection-oriented)이 요구되는 응용프로그램을 위해서 스트림 소켓(stream socket)을 사용하게 된다. 스트림 소켓 관련 시스템 호출은 다양하며, 응용프로그램은 상기 스트림 소켓을 이용하여 여러 시스템 호출을 조합하여 작성하게 된다.
도1에는 서버 클라이언트 시스템의 구성도가 도시되어 있다.
상기 도1에 도시된 바와 같이 서버 클라이언트 시스템은 네트워크를 통하여 서로간에 데이터 교환을 위한 경로를 설정하게 되는데, 상기 데이터 교환의 경로는 해당 네트워크가 사용하는 프로토콜(protocol)에 따라 그 동작 체계가 다르다.
TCP/IP 프로토콜을 사용하는 네트워크의 경우, 소켓의 상태에 따라 순서적으로 각 시스템 호출을 사용하여야 한다.
상기에서 소켓이란 프로세서의 사용자가 시스템이나 네트워크 등의 환경을 의식하지 않고, 프로세스간 통신을 마치 파일의 입출력과 같이 처리할 수 있도록 한 환경을 제공하는 것이다. 이는 OSI 참조모델의 세션층(session layer)에 해당하는 기술이며, TCP/IP의 응용프로그램 인터페이스로써 적용된다.
소켓의 개시는 통신을 하는 2개의 프로세스가 socket() 시스템 호출에 의한 소켓 선언을 수행하여 통신의 입출력 경로가 되는 소켓을 작성하는 것으로부터 이루어진다. 이어서 각 프로세스가 서로를 인식할 수 있는 이름을 그 소켓에 붙이기 위해 bind() 시스템 호출을 실행한다. 소켓의 이름은 같은 도메인내, 인터넷내, 제록스XNS네트워크내 등 3가지 타입별로 정의되어 있다.
소켓의 접속은 listen() 시스템 호출을 통해 서버가 되는 프로세스의 접수준비를 수행하고, connect() 시스템 호출을 통해 클라이언트가 될 프로세스로부터의 소켓 접속요구를 수행하며, accept() 시스템 호출을 통해 서버의 요구접수가 이루어진다.
상기 동작으로 서버와 클라이언트간의 소켓 연결이 이루어지면, 일반파일의 입출력과 같이 read()/write() 시스템 호출을 통해 데이터의 송수신이 수행된다. 그리고 데이터 통신의 종료는 close() 시스템 호출에 의해 이루어진다.
그런데, 소켓 연결에 있어서 복잡한 시스템 호출을 적시에 사용하지 못한다면, 원하는 서비스를 제공할 수 없을 뿐만 아니라 프로그램의 성능을 제대로 발휘할 수 없게 될 것이다.
본 발명은 서버 클라이언트 시스템의 소켓 인터페이스를 개선하고자 하는 것으로, 이에 대비되는 종래기술을 설명하면 다음과 같다.
먼저, 도2는 종래기술에 의한 서버 클라이언트 시스템의 소켓 인터페이스 구성도이다.
상기 도2에 도시된 바와 같이 종래의 인터페이스는, 기본적으로 TCP/IP 프로토콜에 따르는 것으로 상기 프로토콜을 위한 응용프로그램은 클라이언트 서버 구조로 구성되어 동작하게 된다.
종래에는 소켓 연결설정 절차에서 서버측이 연결요구를 기다리기 위해 순차적으로 시스템 호출을 사용하여 처리하게 된다. 이때 사용되는 시스템 호출루틴의 예를 들면, socket(), bind(), listen(), accept() 등이다. 상기 accept() 시스템 호출은 blocking 모드로 동작하여 클라이언트측의 연결요구에 대해 정상적으로 소켓 연결이 이루어지기까지 계속 대기하는 상태가 된다.
그리고 클라이언트측은 소켓을 생성한 후, 소켓 연결을 서버측에 요구하게 된다. 즉, 클라이언트가 소켓(socket())을 생성한 후에 상기 소켓에 따라 연결설정(connect())을 요구하는 것이다.
그래서 서버와 클라이언트간의 소켓 연결이 이루어지면, 상기 연결의 각 주체간 데이터 교환이 가능하게 된다.
상기 연결관리 처리는 서버의 경우, blocking 모드에서 클라이언트측의 연결을 기다리고, 클라이언트는 서버로의 연결요구에 대한 응답을 기다리면서 수행된다. 이러한 서버측과 클라이언트측간의 동기처리는 응용프로그램 개발시 각 개발자마다 다를 수 있다.
상기의 동작으로 일단 연결설정이 이루어지면, 각 주체간의 데이터 송수신이 가능하게 된다. 그리고 연결 주체간의 데이터 교환이 완료되어 더 이상의 데이터 교환이 불필요한 경우에는 더 상기 설정되어 있는 연결을 해제하게 된다.
이러한 일련의 동작을 보다 구체적으로 설명하기로 한다.
서버측에서 socket(), bind(), listen(), accept() 등의 함수가 호출되어 소켓을 열고 클라이언트측과의 연결이 설정될 때까지 대기하는 일련의 단계가 수행된다. 이때 클라이언트측은 socket(), connect() 함수를 차례로 호출하여 소켓을 열고 해당 소켓을 통하여 서버측에 소켓연결을 요구하게 된다.
상기 클라이언트측의 연결요구에 의해 서버측의 소켓과 클라이언트측 소켓간의 연결이 이루어지면(connection establishment), 클라이언트측은 write() 또는 send() 루틴을 호출하여 서버측으로 전송할 데이터를 요청하게 된다(data(request)).
상기 데이터 요청에 의해 서버측은 read() 또는 recv() 루틴이 호출되어 클라이언트측의 요청을 수신하고, 상기 요청된 데이터의 처리를 수행한 후 연결된 소켓을 통한 데이터 전송과정을 수행하게 된다.
상기 클라이언트측의 요청에 대한 응답은 서버측이 상기 요청 데이터를 처리한 결과를 write() 또는 send() 루틴을 호출하여 클라이언트측으로 전송하는 것에 의해 이루어진다(data(reply)). 이때 서버측이 전송하는 응답 데이터의 수신은 클라이언트측의 read() 또는 recv() 루틴에 의하여 이루어진다.
연결된 소켓을 통한 데이터 교환은 상기 체계에 따라 반복적으로 수행되며, 데이터의 전송이 완료되는 경우에는 상기 소켓의 연결상태를 해제하게 된다. 서버 클라이언트 시스템은 소수의 서버에 다수의 클라이언트가 소켓을 통하여 연결되기 때문에 한정된 시스템 자원의 관리가 필요하며, 자원관리시 상기 소켓의 연결설정 및 연결해제가 수행된다.
소켓의 연결해제는 클라이언트측이 더 이상 전송할 데이터가 없는 경우에 close() 루틴을 호출하여 소켓을 닫게 되는데, 상기 close() 루틴은 서버측에 대해 연결해제를 통지하게 된다. 그러면 서버측에서 상기 연결해제 통지를 수신하여 close() 루틴을 호출함으로써 해당 소켓의 연결상태를 해제하고 소켓 자원을 가용한 상태로 복원시키게 된다.
그러나 상기 설명한 종래기술은, 다중연결이 필요한 경우에 각 연결에 대한 정보를 관리해야만 하는 불편이 있었다.
또한, 소켓 관련 시스템 호출을 사용하기 때문에 연결관리 구조가 매우 복잡해지는 문제점이 있었다.
이에 본 발명은 상기와 같은 종래의 제반 문제점을 해소하기 위해 제안된 것으로, 본 발명의 목적은 서버 클라이언트 시스템에 있어서, 연결지향 소켓 인터페이스(Connection-Oriented Socket Interface)를 구현하여 TCP/IP(Transmission Control Protocol/Internet Protocol) 응용프로그램의 개발 또는 작성을 용이하게 한 연결지향 소켓 인터페이스 구현방법을 제공하는 데 있다.
상기와 같은 목적을 달성하기 위하여 본 발명에 의한 연결지향 소켓 인터페이스 구현방법은, 연결지향 소켓 인터페이스 모듈을 초기화하고 서버측이 클라이언트측의 연결요구를 대기하는 포트번호 및 연결식별자를 제공하는 단계와; 사용자가 서버측 인터페이스 함수를 주기적으로 호출하여 클라이언트측으로부터의 소켓 연결요구가 발생되는지를 확인하는 단계와; 클라이언트측의 소켓 연결요구가 발생되면,서버와 통신할 소켓에 대한 연결식별자를 클라이언트측 사용자에게 부여하여 상기 연결식별자를 통해 서버측과 클라이언트측간의 데이터 통신이 수행되도록 하는 단계와; 서버측과 클라이언트측간의 연결 소켓을 통한 데이터 통신이 완료되거나 일측의 소켓이 비정상적으로 종료되는 경우에는 상기 소켓 연결을 해제하는 단계를 수행함을 그 기술적 구성상의 특징으로 한다.
도1에는 서버 클라이언트 시스템의 구성도가 도시되어 있고,
도2는 종래기술에 의한 서버 클라이언트 시스템의 소켓 인터페이스 구성도이며,
도3은 본 발명이 적용되는 프로토콜 스택의 구성도이고,
도4는 도3에서 본 발명의 일실시예에 의한 연결지향 소켓 인터페이스의 상세블록도이며,
도5는 본 발명의 본 발명의 일실시예에 의한 연결지향 소켓 인터페이스의 운용방법 흐름도이다.
이하, 상기와 같은 연결지향 소켓 인터페이스 구현방법의 기술적 사상에 따른 실시예에 의거 본 발명의 구성 및 동작을 설명한다.
먼저, 도3은 본 발명이 적용되는 프로토콜 스택의 구성도이고, 도4는 도3에서 본 발명의 일실시예에 의한 연결지향 소켓 인터페이스의 상세블록도이며, 도5는 본 발명의 본 발명의 일실시예에 의한 연결지향 소켓 인터페이스의 운용방법 흐름도이다.
상기 도5에 도시된 바와 같이 본 발명의 적절한 실시예는, 인터페이스 모듈을 초기화하고 서버측이 클라이언트측의 연결요구를 대기하는 포트번호 및 연결식별자를 제공하는 단계(ST21~ST22)와; 운용자가 서버측 인터페이스 함수를 주기적으로 호출하여 클라이언트측으로부터의 소켓 연결요구가 발생되는지를 확인하는 단계(ST23~ST24)와; 클라이언트측의 소켓 연결요구가 발생되면, 서버와 통신할 소켓에 대한 연결식별자를 클라이언트측 사용자에게 부여하여 상기 연결식별자를 통해 서버측과 클라이언트측간의 데이터 통신이 수행되도록 하는 단계(ST25~ST26)와;서버측과 클라이언트측간의 연결 소켓을 통한 데이터 통신이 완료되거나 일측의 소켓이 비정상적으로 종료되는 경우에는 상기 소켓 연결을 해제하는 단계(ST27~ST28)를 포함하여 구성된다.
이와 같이 구성되는 방법에 따른 동작을 설명하면 다음과 같다.
본 발명은 TCP/IP를 통과하는 스트림 소켓(stream socket)을 이용하여 데이터를 주고 받는 인터페이스 기능을 제공함으로써 실질적인 소켓 이용을 단순화시키게 된다.
상기 스트림 소켓은 연결지향 소켓에 해당한다. 연결지향(connection-oriented 또는 stream-oriented)이란 전송계층 데이터 통신 서비스의 일종으로 일측의 호스트가 다른 일측의 호스트로 연속적인 스트림 데이터를 보내는 것을 말한다. 이때 연결지향 서비스는 전송되는 모든 데이터가 동일한 순서 및 중복없이 수신측에 도달되는 것을 보증한다. 이러한 연결지향 서비스는 3 개의 단계로 수행되는데, 연결설정 단계와 데이터 전달단계 및 연결해제 단계이다.
연결지향 서비스의 대표적인 경우가 TCP 프로토콜이다.
본 발명에 제시하는 연결지향 소켓 인터페이스를 위한 프로토콜 스택(protocol stack)의 구조는 도3에 도시되어 있는 바와 같다.
도3의 프로토콜을 이용하는 경우, 서버/클라이언트측에 관계없이 사용자는 연결에 대한 연결식별자를 이용하여 데이터를 송수신 할 수 있다. 여기에서 연결지향 소켓 인터페이스(Connect-Oriented Socket Interface)는 COSI로 표기되어 있다.
상기 프로토콜을 위한 연결지향 인터페이스(COSI) 함수는 다음과 같다.
초기화 함수는 내부적으로 사용할 테이블을 할당하고 사용자의 파라미터를 입력 받는다.
연결요구 함수는 서버 소켓 열기, 클라이언트 소켓 열기 및 서버 연결관리를 수행하기 위한 서브함수를 호출하게 된다. 서버 소켓 열기 서브함수는 서버측이 소켓을 생성하여 연결요구를 기다리도록 하고, 클라이언트 소켓 열기 서브함수는 클라이언트측이 소켓을 생성하여 연결요구를 수행하도록 하며, 서버 연결관리 서브함수는 서버측이 클라이언트의 연결요구를 검사하여 연결요구에 대한 응답을 수행하게 된다.
연결해제 함수는 서버/클라이언트간에 설정된 소켓 연결상태를 해제하도록 한다.
데이터 송수신 함수는 데이터의 송신, 수신1, 수신2 및 수신확인 기능을 수행하게 된다. 상기 송신기능은 이미 생성된 연결로 데이터를 송신하는 것이고, 수신1은 이미 생성된 연결로부터 데이터의 최대크기를 지정하여 수신하는 것이다. 그리고 수신2는 이미 생성된 연결로부터 데이터를 원하는 양만큼 수신하는 것이고, 수신확인 기능은 수신되는 데이터가 있는지를 확인하는 것이다.
기타의 함수로는 상태정보의 처리를 위한 함수 등이 있다.
이러한 각 함수간의 기능적 연관 및 전체적인 동작흐름을 첨부도면을 참조하여 보다 구체적으로 설명하기로 한다.
도4에는 본 발명이 제시하는 연결지향 소켓 인터페이스의 적용예가 도시되어 있다.
도5에 제시된 동작흐름과 같이, 연결지향 소켓 인터페이스를 사용하기 위해서는 각 모듈을 초기화하는 단계를 거쳐야 한다(ST21).
초기화 단계에서 입력되는 파라미터는 사용자가 사용할 최대 연결의 수, 사용자가 보내는 최대 메시지의 크기, 수신 가능한 메시지의 크기 등이다. 이때 인터페이스 모듈의 초기화시 사용되는 파라미터는 해당 인터페이스 모듈의 관리에 있어서 편의성을 위한 것으로, 해당 인터페이스 함수의 기능과 직접적인 연관을 갖는 것은 아니다.
상기 파라미터를 사용하여 모듈의 초기화에 성공하게 되면, 연결요구를 수행할 수 있게 된다.
연결요구는 서버와 클라이언트측에 따라 서로 다르다.
연결요구시 서버측은 연결요구를 기다리는 포트번호를 입력으로 제공한다. 상기 입력에 대해 해당 포트의 연결이 이루어지면 해당 연결에 대한 연결식별자를 사용자에게 제공하게 된다(ST22).
이때 서버의 내부에서 상기 연결요구를 처리하여 소켓 연결을 수행하는 일련의 단계는 종래기술과 같은 일정한 시스템 호출함수가 사용된다.
그리고 클라이언트로부터 연결요구를 확인하기 위해 사용자는 주기적으로 인터페이스 함수에 의해 호출된다(ST23). 즉, 인터페이스 함수 내부에 프로세스(또는 태스크)가 존재하지 않기 때문에 사용자에 의해 수행되는 것이다.
그래서 클라이언트측의 연결요구는 포트번호를 입력으로 제공하며, 상기 요구된 연결이 이루어지면 서버측과 통신할 수 있는 연결식별자를 사용자에게 부여한다(ST24~ST25).
이상의 절차가 모두 성공적으로 수행되면, 사용자는 각 연결 식별자를 이용하여 생성된 연결을 통한 데이터 송수신을 수행할 수 있게 된다(ST26).
우선 데이터 송신에 있어서는, 사용자가 부여받은 연결 식별자를 이용하여 메시지를 보내는 경우 소켓을 이용하여 상대편으로 송신하게 된다.
데이터 수신에 있어서는, 2가지 방식이 사용자에게 제공된다.
그 첫째는 원하는 데이터의 크기를 지정하여 수신하는 경우로써, 수신1 방식이라 칭한다. 상기 수신1 방식은 사용자가 수신할 다음 데이터의 크기를 알고 있을 사용되는 방식이다.
그리고 두 번째는 사용자가 받을 수 있는 데이터의 크기를 지정하여 수신하는 방식으로, 수신2 방식이라 칭한다. 상기 수신2 방식은 사용자가 요구한 최대크기를 넘는 데이터가 있는 경우에는 그 최대크기만큼을 사용자에게 제공하는 방식이다. 이때 사용자는 최대크기를 넘음으로써 남게 되는 데이터에 대하여 다시 수신처리하여야 한다.
이러한 수신1 및 수신2 방식은 스트림 소켓의 동작특성에 의한 것으로, 스트림 소켓에서는 상대편이 보낸 메시지의 시작과 끝을 구분할 수 없어 상기와 같은 수신방식에 제공된다. 따라서 메시지의 시작과 끝은 사용자가 결정하여야 한다.
상기 설명한 일련의 데이터 송수신 동작을 수행하여 더 이상 데이터 송수신이 요구되지 않는 경우에는, 사용자의 요구에 따라 소켓 연결을 해제하게 된다.
소켓 연결 해제는 데이터 송수신 완료의 경우에만 이루어지는 것이 아니고,상대편이 비정상적으로 종료되었을 경우에도 이루어진다. 상대편의 비정상 종료에 의한 소켓 연결 해제여부는 사용자가 직접 결정하게 된다(ST27~ST28).
이처럼 본 발명은 연결지향 소켓 인터페이스를 제공하여 응용프로그램 계층에서 운용자가 수행하는 소켓관리 명령 또는 처리 단계의 수행에 관한 제반사항을 상기 인터페이스에 의해 일괄적으로 수행되도록 함으로써, TCP/IP 소켓의 연결시 서버와 클라이언트간의 요청/승인/해제 등의 절차에 운용자가 참여하지 않아도 되며, 소켓 연결요구에 대해 서버측이 블락킹(Blocking) 모드로 동작하지 않아도 되도록 하는 것이다.
이상에서 본 발명의 바람직한 실시예를 설명하였으나, 본 발명은 다양한 변화와 변경 및 균등물을 사용할 수 있다. 본 발명은 상기 실시예를 적절히 변형하여 동일하게 응용할 수 있음이 명확하다.
즉, 장비에서 현재 상태정보를 관리하고 있고, TCP/IP를 통해 상호 연결된 PC에 의해 이를 운용하는 네트워크 구성에 적용할 수 있다. 이러한 구성에서 서로간의 통신으로 정보를 요구하고 응답하는 경우에 적용될 수 있는 것이다.
따라서 상기 기재 내용은 하기 특허청구범위의 한계에 의해 정해지는 본 발명의 범위를 한정하는 것이 아니다.
이상에서 살펴본 바와 같이 본 발명에 의한 연결지향 소켓 인터페이스 구현방법은, 자세한 소켓관련 시스템 호출을 모르는 경우에도 TCP/IP 응용프로그램을용이하게 작성할 수 있도록 하는 효과가 있다.
그리고 하나의 프로세스(또는 태스크)가 동작하는 환경에서도 서버는 한 포트로 여러 클라이언트와 연결할 수 있게 된다.
또한, 본 발명에 의한 인터페이스는 기본적으로 non-blocking으로 처리되므로 다중 연결관리가 가능하고 상기 다중 연결에 대한 정보를 사용자가 얻을 수 있기 때문에, 다중 프로세서에서 동작하는 응용프로그램에의 적용이 가능하게 되는 효과를 갖는다.
Claims (5)
- 연결지향 소켓 인터페이스 모듈을 초기화하고 서버측이 클라이언트측의 연결요구를 대기하는 포트번호 및 연결식별자를 제공하는 단계와;사용자가 서버측 인터페이스 함수를 주기적으로 호출하여 클라이언트측으로부터의 소켓 연결요구가 발생되는지를 확인하는 단계와;클라이언트측의 소켓 연결요구가 발생되면, 서버와 통신할 소켓에 대한 연결식별자를 클라이언트측 사용자에게 부여하여 상기 연결식별자를 통해 서버측과 클라이언트측간의 데이터 통신이 수행되도록 하는 단계와;서버측과 클라이언트측간의 연결 소켓을 통한 데이터 통신이 완료되거나 일측의 소켓이 비정상적으로 종료되는 경우에는 상기 소켓 연결을 해제하는 단계를 포함하여 구성되는 것을 특징으로 하는 연결지향 소켓 인터페이스 구현방법.
- 제 1항에 있어서, 상기 연결지향 소켓 인터페이스 모듈은,TCP/IP 프로토콜의 스트림 소켓과 응용프로그램간의 인터페이스를 위해 구현되는 것으로,응용프로그램 계층에서의 명령 처리는 서버 소켓 열기, 클라이언트 소켓 열기, 데이터 송신/수신으로 구분되고,상기 응용프로그램 계층의 각 명령을 처리하기 위한 관련 함수들은 인터페이스 함수에 의해 호출되며, 상기 명령처리 관련 함수를 수행하여 발생되는 데이터 또는 처리 결과는 인터페이스 함수를 통해 해당 명령을 요청한 응용프로그램의 해당 루틴으로 반환시키는 것을 특징으로 하는 연결지향 소켓 인터페이스 구현방법.
- 제 1항에 있어서, 상기 연결지향 소켓 인터페이스 모듈의 초기화 단계는,사용자가 사용할 최대 소켓 연결의 수, 사용자가 보내는 메시지의 최대 크기 및 수신 가능한 메시지의 최대크기를 파라미터로써 연결지향 소켓 인터페이스 모듈에 전달하여, 상기 파라미터에 따라 해당 인터페이스 모듈이 초기화 되도록 함을 특징으로 하는 연결지향 소켓 인터페이스 구현방법.
- 제 1항에 있어서, 상기 연결된 소켓을 통한 데이터 송수신 단계는,데이터 수신측에서 수신하고자 하는 데이터의 크기를 지정하여 수신하는 것을 특징으로 하는 연결지향 소켓 인터페이스 구현방법.
- 제 1항에 있어서, 상기 연결된 소켓을 통한 데이터 송수신 단계는,데이터의 수신측에서 수신할 수 있는 데이터의 최대크기를 상기 인터페이스모듈의 초기화 단계에서 미리 지정하여, 상기 지정된 최대크기만큼씩 데이터를 수신하는 것을 특징으로 하는 연결지향 소켓 인터페이스 구현방법.
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020000063835A KR20020033219A (ko) | 2000-10-30 | 2000-10-30 | 연결지향 소켓 인터페이스 구현방법 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
KR1020000063835A KR20020033219A (ko) | 2000-10-30 | 2000-10-30 | 연결지향 소켓 인터페이스 구현방법 |
Publications (1)
Publication Number | Publication Date |
---|---|
KR20020033219A true KR20020033219A (ko) | 2002-05-06 |
Family
ID=19696021
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
KR1020000063835A KR20020033219A (ko) | 2000-10-30 | 2000-10-30 | 연결지향 소켓 인터페이스 구현방법 |
Country Status (1)
Country | Link |
---|---|
KR (1) | KR20020033219A (ko) |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100451786B1 (ko) * | 2000-11-30 | 2004-10-08 | 엘지전자 주식회사 | 이동통신 시스템의 소켓 자동 관리 방법 |
KR100560752B1 (ko) * | 2004-07-21 | 2006-03-13 | 삼성전자주식회사 | 소켓 연결 관리 시스템 및 그 소켓 연결 상태 체크 방법 |
KR100677141B1 (ko) * | 2004-10-11 | 2007-02-02 | 삼성전자주식회사 | 일대일 이름-기반 소켓 통신 수행 장치 및 방법 |
KR100995025B1 (ko) * | 2002-12-09 | 2010-11-19 | 엘지전자 주식회사 | 서버와 클라이언트의 통신포트 연결방법 |
CN117092972A (zh) * | 2023-08-30 | 2023-11-21 | 深圳市德航智能技术有限公司 | 一种工业平板电脑的控制系统 |
CN118733304A (zh) * | 2024-09-03 | 2024-10-01 | 麒麟软件有限公司 | 共享内存实现本地TCP的Socket通信方法及系统 |
-
2000
- 2000-10-30 KR KR1020000063835A patent/KR20020033219A/ko not_active Application Discontinuation
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR100451786B1 (ko) * | 2000-11-30 | 2004-10-08 | 엘지전자 주식회사 | 이동통신 시스템의 소켓 자동 관리 방법 |
KR100995025B1 (ko) * | 2002-12-09 | 2010-11-19 | 엘지전자 주식회사 | 서버와 클라이언트의 통신포트 연결방법 |
KR100560752B1 (ko) * | 2004-07-21 | 2006-03-13 | 삼성전자주식회사 | 소켓 연결 관리 시스템 및 그 소켓 연결 상태 체크 방법 |
KR100677141B1 (ko) * | 2004-10-11 | 2007-02-02 | 삼성전자주식회사 | 일대일 이름-기반 소켓 통신 수행 장치 및 방법 |
CN117092972A (zh) * | 2023-08-30 | 2023-11-21 | 深圳市德航智能技术有限公司 | 一种工业平板电脑的控制系统 |
CN118733304A (zh) * | 2024-09-03 | 2024-10-01 | 麒麟软件有限公司 | 共享内存实现本地TCP的Socket通信方法及系统 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US6785380B2 (en) | Network-centric self-administered call center with intelligent mobile agent terminals | |
US5625678A (en) | Method and system for allowing switched voice and data communication among multiple application programs | |
EP0381365B1 (en) | A system and method for interconnecting applications across different networks of data processing systems | |
US7080120B2 (en) | System and method for collaborative processing of distributed applications | |
KR100686705B1 (ko) | 세션 개시 프로토콜-가능 단말기에 다중-클라이언트 지원을제공하기 위한 방법 및 장치 | |
EP1401169A1 (en) | Method and system using a Meta service selector for deploying services over a plurality of networks | |
JP2007508617A (ja) | 持続的なアプリケーションセッションにアクセスを提供する方法および装置 | |
WO2004082152A2 (en) | Supporting the exchange of data by distributed applications | |
JP2001507189A (ja) | インターネットss7ゲートウエイ | |
CN108390950A (zh) | 一种消息推送方法、装置及设备 | |
CN107528891B (zh) | 一种基于WebSocket的自动集群方法及其系统 | |
US7519950B2 (en) | Method and system for version negotiation of distributed objects | |
EP1088422B1 (en) | A telecommunication controller messaging system | |
US6401123B1 (en) | Systems, methods and computer program products for employing presumptive negotiation in a data communications protocol | |
KR20020033219A (ko) | 연결지향 소켓 인터페이스 구현방법 | |
Cisco | Configuring Protocol Translation | |
Cisco | Protocol Translation | |
Cisco | Protocol Translation | |
Cisco | Protocol Translation | |
Cisco | Protocol Translation | |
Cisco | Configuring Protocol Translation | |
Cisco | Configuring Protocol Translation | |
Cisco | Configuring Protocol Translation | |
Cisco | Configuring Protocol Translation | |
Cisco | Protocol Translation |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PA0109 | Patent application |
Patent event code: PA01091R01D Comment text: Patent Application Patent event date: 20001030 |
|
PG1501 | Laying open of application | ||
N231 | Notification of change of applicant | ||
PN2301 | Change of applicant |
Patent event date: 20020629 Comment text: Notification of Change of Applicant Patent event code: PN23011R01D |
|
PC1203 | Withdrawal of no request for examination | ||
WITN | Application deemed withdrawn, e.g. because no request for examination was filed or no examination fee was paid |