HOME   로그인   회원가입
    
회원가입
비밀번호 찾기 자동로긴
이전게시판
   free_board
   건강게시판
   오라클DB
   Linux
   HTML/javascript
   질문과 답
호서기
   이미지게시판  
   건강게시판  
   음악자료  
   성준이 게시판  
  2010-03-17 16:34:492284 
xml 전송용 c 소스
호석
첨부파일 참조 -----------------

#include <stdio.h>
#include <unistd.h>
#include <stdlib.h>
#include <string.h>
#include <sys/socket.h>
#include <sys/stat.h>
#include <arpa/inet.h>

#define MAXBUF  10000

int main()
{
   int ssock ;
   int clen,szXml ;
   struct sockaddr_in server_addr;
   char buf[MAXBUF];
  
   char xmlStart[] ="<?xml version=\"1.0\" encoding=\"euc-kr\"?><DOCUMENT><TELEX-HD TelexId=\"A30S\" MsgCd=\"0000\"/><DETAIL>";
   char xmlData[]  ="<DATA SaleDate=\"20060801\" IndexNo=\"A00013\" SaleAmt=\"2500\"/>";
   char xmlEnd[]   ="</DETAIL></DOCUMENT>";

   //---------------------------------------------------------------  
   // 전송할 size 계산  szXml = sizeof(xmlHead) + sizeof(xmlData) 
   // -3 은 \n 문자제외
   //---------------------------------------------------------------  
   szXml = sizeof(xmlStart) +  sizeof(xmlData) +  sizeof(xmlEnd) - 3  ;

   printf("\n Send xml size = %d %d %d , tot = %d \n",sizeof(xmlStart) ,  sizeof(xmlData) ,  sizeof(xmlEnd),szXml);

   // 소켓을 생성
   if ((ssock = socket(PF_INET, SOCK_STREAM, IPPROTO_TCP)) < 0) {
      perror("socket error : ");
      exit(1);
   }
     
   clen = sizeof(server_addr);
  
   // 소켓이 접속할 주소 지정
   memset(&server_addr,0, sizeof(server_addr));
   server_addr.sin_family  = AF_INET;
   server_addr.sin_addr.s_addr = inet_addr("211.000.000.000");
   server_addr.sin_port    = htons(80);

   // 지정한 주소로 접속
   if (connect(ssock, (struct sockaddr *)&server_addr, clen) < 0) {
      perror("connect error :");
      exit(1);
   }

    printf("\n Socket 접속 ok  \n");

    memset(buf,    0x00, MAXBUF);  
  
    // 전송할 문자열 구성
  
    printf("\n 전송할 데이터 = \n %s%s%s \n\n size = %d\n",xmlStart,xmlData,xmlEnd, szXml);
//---------------------------------------------------   
// sprintf(buf, "GET /manage/poscall?interface.php?url_path=http://61.78.39.132/SAM/A20/&data_file=%s&index_file=%s&proc_date=%s&cnt=%d \r\n\r\n",
// A20_Data_File, A20_Index_File, Proc_Date, Total_Cnt);
//---------------------------------------------------
//  data 생성
//
// POST /test/xml_recv.php HTTP/1.1 
// Accept: */*..
// Content-Type: text/xml
// Accept-Language: ko..
// Host: 211.000.000.000
// Content-Length: 99
// Connection: Keep-Alive
// Cache-Control: no-cache
//  중요 send 함수에서 strlen 을 사용해서 구성된 정확한 문자열 길이만큼만 전송해야 한다.
//---------------------------------------------------

sprintf(buf, "POST /test/xml_recv.php HTTP/1.1\r\nAccept: */*\r\nContent-Type: text/xml\r\nAccept-Language: ko\r\nHost: 211.000.000.000\r\nContent-Length: %d\r\nConnection: Keep-Alive\r\nCache-Control: no-cache\r\n\r\n%s%s%s\r\n",szXml,xmlStart,xmlData,xmlEnd);

   printf("전송되는 내용 =  \n%s  \n",buf);
  
   sleep(1); // 1초대기

if( send(ssock, buf, strlen(buf), 0 ) <= 0 )
{
      perror("send error :");
      exit(1);
}

   printf("\n 전송됨 ok  \n");

   memset(buf,    0x00, MAXBUF); 
  
   printf("\n 수신시작  \n");

   // 수신서버에서 전송하는 문자열을 받음
   if (recv(ssock, buf, MAXBUF ,0) <= 0) {
      perror("read error : ");
      exit(1);
   }
   printf("\n 수신종료  \n");  
  
   // 소켓을 닫음
   close(ssock);

   // 받아온 문자열을 화면에 출력
   printf("\ %s\r\n", buf);

   return 0;
}
목록
4313
번호 제목 성명 날짜 읽음
40 memcmp 함수의 비교연산예 호석 12-02-09 2014
39 c 에서 ini 읽기 함수구현 호석 10-03-17 2183
xml 전송용 c 소스 호석 10-03-17 2285
37 PHP에서 엑셀 파일을 업로드 해서 사용하기 소스 호석 09-10-21 2846
36 dhtml edit control 분석 - 내 홈페이지에 wysisyg에디터를 달아보자. (1) 호석 09-03-27 2755
35 자바 ftp class 호석 08-05-19 2602
34 [ php.ini 환경설정파일 - 신규설치시 셋팅해야할 항목 ] 호석 08-05-01 2333
33 유비아이 리포트 배포관련 ubi report 호석 08-03-20 2662
32 아파치에 톰켓연동 호석 07-12-23 4237
31 톰켓연동에 대해서 호석 07-12-23 2348
30 [c] 진수변환 프로그램 호석 07-07-14 2739
29 [php] 타 도메인간 쿠키 공유하기 호석 07-05-16 3566
28 [php]다른 서버, 다른 도메인간 세션 공유 방법 1차 개선 호석 07-05-15 2977
27 [php]쿠키값 적용 활용팀 호석 07-05-15 3192
26 php floor 함수 오류 확인필요 호석 07-03-19 3081
1 [2] [3]  다음맨끝
 
Copyright © zenos.pe.kr. All rights reserved.