client 측
example 로 gsoap sample 로 존재하는 calc.wsdl 을 바탕으로 하겠다.
먼저 calc.wsdl 을 client 방면으로 만들기 위해 wsdl2h -c -s -o calc.h calc.wsdl
-c 는 c 코드로 제작하라는것이고
-s 는 STL 버전 사용 안함을 설정한것
-o calc.h 만들기위한 옵션
만들면 여러 파일이 생성된다
이제 soapcpp2 를 이용해서 data mapping 과 C/C++ 코드를 생성시켜야 한다.
soapcpp2 -c -C -I(대문자 i )import calc.h
-c generate pure C code
-C generate client-side code
이제 생성된 소스를 이용해서 client를 작성하면 된다.
soapClient.c 를 보면 wsdl 를 기반으로 생성된 함수가 있다 그걸 호출하여 사용하면된다.
stdsoap2.c 는 gsoap 폴더 안에 있다. 잘 찾아보길...
컴파일은 다음과 같다.
gcc -o client client.c stdsoap2.c soapC.c soapClient.c
Server
wsdl2h -c -s -o calc.h calc.wsdl
soapcpp2
-c -S -Iimport calc.h
서버측에서 클라이언트가 보낸 메시지에 대한 함수를 처리하는 함수 정의?엿나 정의는 calc.h에 선언되어있다.
gcc -o server server.c soapC.c soapServer.c sttdsoap2.c
* soapcpp2 도중에 Critical error : #import : Cannot open file "soap12.h" for reading
이라는 에러가 나면 상위 디렉토리들에 있는 soap12.h 를 포함 시켜야 한다
나 같은경우는 ln -s ../../../import import
한뒤
soapcpp2 -c -C -Iimport/ test.h
하였다.
'IT > 리눅스' 카테고리의 다른 글
ubuntu 12.04에 Hadoop 설치 (0) | 2014.06.02 |
---|---|
gsoap 방법 (0) | 2014.05.12 |
gSoap & SSL & openssl (1) | 2014.05.12 |
ubuntu gSoap 설치 (0) | 2014.05.07 |
리눅스 현재 포트 확인 명령어 (0) | 2013.07.03 |