main > search > back (or search result)
  Ä«Å×°í¸® > ÇÁ·ÎÁ§Æ®(project)

 [TIP] ÀÎÅͳÝÀ¸·Î ¹®ÀÚ¸Þ½ÃÁö (SMS) º¸³»±â

   ÆÁ¾²±â(write)  µ¡±ÛÀÛ¼º(reply)  ¼öÁ¤(modify)  / Posted by À̰ǿì, on 2008/03/23,15:49:39 [ ID: 03237364 ]


¾Æ·¡ ¼Ò½º´Â, SMS ¼­ºñ½º¸¦ Á¦°øÇØÁÖ´Â »çÀÌÆ®¿¡ HTTP·Î SMSÀü¼Û ¿äûÀ» ÇÏ´Â ¹æ¹ýÀÔ´Ï´Ù. ¾à°£ ÀÀ¿ëÇÏ¿© ·Î±×ÀÎ ´Ü°è¸¦ Çϳª Ãß°¡ÇÑ ÈÄ º¸³¾ ¼öµµ ÀÖÀ» °ÍÀÔ´Ï´Ù.(¹°·Ð, À̸¦ À§Çؼ­´Â ¾à°£ÀÇ ÄÚµùÀÌ ´õ ÇÊ¿äÇÕ´Ï´Ù. ÀÌ´Â, ¿©Å¸ÀÇ ¹«·á ¹®ÀÚ ¸Þ½ÃÁö Á¦°ø »çÀÌÆ®¿Í ¿¬µ¿ÇÏ´Â ¹æ¹ýÀÌ µÇ°ÚÁö¿ä.^^)

isGET == true À̸é GET ÇüÅ·Π±×·¸Áö ¾ÊÀ¸¸é POST ¹æ½ÄÀ¸·Î CGI Äõ¸®¸¦ ³¯¸®´Â °£´ÜÇÑ ¹æ¹ýÀÔ´Ï´Ù.

// sms.h

class CSms : public CAsyncSocket
{
// Attributes
:
:
};

:
:

//sms.cpp
//
BOOL CSms::SendSMSNow(BOOL isGET)
{
	char sendBuffer[4096];
	char recvBuffer[4096];
	int ret;
         //ÀÚ½ÅÀÇ ¼ÒÄÏÀ» Create ÇÑ´Ù
	if(Create() == FALSE) return FALSE;
         //¼­ºñ½º Á¦°ø»çÀÌÆ®ÀÇ IP ÁÖ¼Ò¸¦ 80(º¸ÅëHTTP)Æ÷Æ®·Î Á¢¼ÓÇÑ´Ù.
	Connect(m_ServerIP, 80);

	//	
	if(isGET == TRUE)
	{	
                  //ÇØ´ç»çÀÌÆ®¿¡¼­ ¿ä±¸ÇÏ´Â CGI Äõ¸® Æ÷¸äÀ¸·Î ÀÚ½ÅÀÇ º¸³»´Â ³»¿ë/¹øÈ£, ¹Þ´Â ¹øÈ£¸¦ ¼³Á¤Çϰí ÇØ´ç»çÀÌÆ®¿¡¼­ Àü¼Û½Ã ¿ä±¸ÇÏ´Â ¾ÆÀ̵ð¿Í ÆÐ½º¿öµå¸¦ ´ã´Â´Ù.
//Áï, ÀÌ¿Í °°ÀÌ ÇѹøÀÇ Äõ¸®¿¡ ¾ÆÀ̵ð¿Í ÆÐ½º¿öµå°¡ ¸Â°í Äõ¸®°¡ ¹Ù¸¦ °æ¿ì SMS¸¦ ³¯¸± ¼ö ÀÖµµ·Ï ¼­ºñ½º¸¦ Á¦°øÇØÁÖ´Â »çÀÌÆ®¿¡ ¹Ì¸® °¡ÀÔÀÌ µÇ¾î ÀÖ¾î¾ß ÇÑ´Ù.
//¾Æ·¡´Â nicesms.co.kr À̶ó´Â »çÀÌÆ®ÀÇ ¼­ºñ½º¸¦ ¿¹·Î µé¾ú´Ù.
		sprintf(sendBuffer,"GET %s?%s=%s&%s=%s&%s=%s&%s=%s&%s=%s&%s HTTP/1.0\r\n\r\n", 
		m_CGIAddr, m_Param_ID, m_ID, m_Param_PW, m_PW, m_Param_MSG, m_strMessage,
		m_Param_RecvNum, m_strRecvNum, m_Param_SendNum, m_strSendNum,
		m_Param_etc);
	}
	else
	{
		CString strPacket, strContentLength;
		CString strParam;

		strParam.Format("%s=%s&%s=%s&%s=%s&%s=%s&%s=%s&%s", 
			m_Param_ID, m_ID, m_Param_PW, m_PW, m_Param_MSG, m_strMessage,
			m_Param_RecvNum, m_strRecvNum, m_Param_SendNum, m_strSendNum,
			m_Param_etc);

		strContentLength.Format("%d",strParam.GetLength());
		

		strPacket = "POST ";
		strPacket += m_CGIAddr;
		strPacket += " HTTP/1.1\r\n";
		strPacket += "Accept: */*\r\n";
		//strPacket += "Referer: http://" + m_ServerIP + m_CGIAddr + "\r\n";
		strPacket += "Accept-Language: ko\r\n";
		strPacket += "Content-type: application/x-www-form-urlencoded\r\n";
		strPacket += "Accept-Encoding: gzip, deflate\r\n";
		strPacket += "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.0)\r\n";
		strPacket = strPacket + "Host: " + m_ServerIP + "\r\n";
		strPacket = strPacket + "Content-Length: " +  strContentLength + "\r\n";
		strPacket += "Cache-Control: no-cache\r\n";
		strPacket += "Connection: Keep-Alive\r\n";
		strPacket += "\n";
		strPacket += strParam;
		strPacket += "\r\n\r\n";

		sprintf(sendBuffer, strPacket);
		//AfxMessageBox(sendBuffer);
	}
	 

	//AfxMessageBox(sendBuffer);
	
	Sleep(1500);
         //Äõ¸®¸¦ ³¯¸°´Ù.
	if(Send(sendBuffer,strlen(sendBuffer),0) <= 0)
		return FALSE;

         //Àá½Ã ´ë±âÈÄ...
	Sleep(1000);

	memset(recvBuffer,0,sizeof(recvBuffer));

         // ÀÀ´ä µ¥ÀÌÅ͸¦ ¼ö½ÅÇÑ´Ù.
	do{
		ret = Receive(recvBuffer,4096,0);
	}while(ret > 0);

         // ¼ö½ÅµÈ µ¥ÀÌÅ͸¦ ÆÄ½ÌÇÏ¿© ¼Û½ÅÀÇ ¼º°ø À¯¹«¸¦ È®ÀÎÇÏ´Â Äڵ带 ÀÛ¼ºÇÒ ¼ö ÀÖÀ» °ÍÀÌ´Ù.
	//recvBuffer[ret] = NULL;
	//AfxMessageBox(recvBuffer);

  
         // ¼ÒÄÏÀ» ´Ý´Â´Ù.
	Close();

	return TRUE;
}








Creative Commons License ÀÌ ÀúÀÛ¹°Àº Å©¸®¿¡ÀÌÆ¼ºê Ä¿¸ÕÁî ÄÚ¸®¾Æ ÀúÀÛÀÚÇ¥½Ã-ºñ¿µ¸®-º¯°æ±ÝÁö 2.0 ´ëÇѹα¹ ¶óÀ̼¾½º¿¡ µû¶ó ÀÌ¿ëÇÏ½Ç ¼ö ÀÖ½À´Ï´Ù.