2009-09-15 5 views
1

우리 회사는 원격 프로그래밍 도구를 구현하여 현장에서 임베디드 장치를 구성 할 계획입니다. 나는이 장치들이 HTTP 클라이언트를 가지고 있다고 가정하고 액세스 할 수있는 몇 가지 REST 서비스를 구현할 계획이었다. 불행히도, 나는 그들이 TCP 스택을 가지고 있지만 HTTP 클라이언트가 없다는 것을 알았다. 동료 중 한 명이 HTTP 클라이언트없이 포트 80을 통해 "비누 패킷"을 보내려고한다고 제안했습니다. 또한 장치에는 SOAP 클라이언트가 없습니다. 이것이 가능한가? 장치가 연결된 네트워크에서 실행중인 웹 서버가 있다면 의미가 있습니까? 이런 식으로 구현하는 방법에 대한 조언이나 모범 사례에 감사드립니다.HTTP가없는 웹 서비스에 대한 조언

+0

응답 해 주셔서 감사합니다 ... 나는 WebGet 메서드로 간단한 WCF 서비스를 구현하고 Fiddler를 사용하여 HTTP GET 요청과 함께 작동하는 방법을 보여줍니다. 임베디드 개발자가 원시 HTTP 클라이언트를 작성할 때 같은 방식으로 작동한다고 가정합니다. – GWTF

답변

2

서버가 단순한 파일을 처리하는 경우 내장 된 장치는 실제로 HTTP GET request 만 보내면됩니다 (장치를 식별하는 약간의 추가 데이터가있을 수 있으므로 서버는 어떤 펌웨어 버전을 보낼지 알 수 있습니다).

거기에서 임베디드 장치의 소켓에서 들어오는 원시 데이터를 읽는 것이 매우 간단합니다. 응답에서 HTTP 헤더를 무시해야 할 수도 있고 보내지 않도록 서버를 구성 할 수도 있습니다 그 요청을 위해.

2

당신은 실제로 HTTP 클라이언트가 필요하지 않습니다. HTTP는 필요한 경우 직접 구현할 수있는 매우 간단한 텍스트 기반 프로토콜입니다.

그렇다고해서 직접 구현할 필요는 없을 것입니다. TCP 스택과 표준 소켓 라이브러리가있는 경우 HTTP 또는 SOAP 기능을 감싸는 간단한 C 라이브러리 (예 : this one)를 찾을 수 있습니다. 그런 다음 해당 라이브러리를 응용 프로그램에 구축 할 수 있습니다. 쉽게 소비 할 수있는 경우 - 그것은 아마 당신이 당신의 임베디드 디바이스에서 사용할 수있는 어떤 기술을 따라

:

2

기본 HTTP는 손으로 구현하기가 특히 어렵지 않습니다. 이것은 페이로드를 제외하고 텍스트 기반의 라인 기반 프로토콜이며 서버는 "단순한 ham fisted"클라이언트 (모든 단순한 클라이언트가 있어야 함)로는 상당히 잘 작동합니다.

하위 집합을 사용할 수 있다면 간단히 작성하고 완료하십시오.

관련 문제