본문 바로가기

IT/리눅스

gsoap client, server 코딩 방법

반응형

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



client.c


server.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