|
2010-03-17 16:34:491804
|
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;
}
|
|
|
|
|