├── CppHttpStack.doxygen ├── CreateGplClass ├── CreateGplClass.cpp ├── CreateGplClass.vcproj ├── CreateGplClass.vcxproj ├── CreateGplClass.vcxproj.filters ├── CreateHeaderFile.hpp ├── CreateSourceFile.hpp └── ReadMe.md ├── HtmlParser ├── HtmlAttribute.cpp ├── HtmlAttribute.h ├── HtmlElement.cpp ├── HtmlElement.h ├── HtmlElementUrl.cpp ├── HtmlElementUrl.h ├── HtmlParser.vcproj ├── HtmlParser.vcxproj ├── HtmlParser.vcxproj.filters ├── HtmlSearch.cpp ├── HtmlSearch.h ├── Makefile └── ReadMe.md ├── Http2Parser ├── Http2Conversion.cpp ├── Http2Conversion.h ├── Http2Define.h ├── Http2Frame.cpp ├── Http2Frame.h ├── Http2FrameList.cpp ├── Http2FrameList.h ├── Http2Header.cpp ├── Http2Header.h ├── Http2HpackHeader.cpp ├── Http2HpackHeader.h ├── Http2HpackHeaderList.cpp ├── Http2HpackHeaderList.h ├── Http2HuffmanCode.cpp ├── Http2HuffmanCode.h ├── Http2HuffmanCodeDecode.hpp ├── Http2HuffmanCodeEncode.hpp ├── Http2Packet.cpp ├── Http2Packet.h ├── Http2Parser.vcproj ├── Http2Parser.vcxproj ├── Http2Parser.vcxproj.filters ├── Http2Settings.cpp ├── Http2Settings.h ├── Makefile └── ReadMe.md ├── HttpDownloadAll ├── HttpDownloadAll.cpp ├── HttpDownloadAll.h ├── HttpDownloadAll.vcproj ├── Makefile └── ReadMe.md ├── HttpNoCacheProxy ├── HttpNoCacheProxy.cpp ├── HttpNoCacheProxy.h ├── HttpNoCacheProxy.vcproj ├── Main.cpp └── ReadMe.md ├── HttpParser ├── HttpDomainCookie.cpp ├── HttpDomainCookie.h ├── HttpHeader.cpp ├── HttpHeader.h ├── HttpMessage.cpp ├── HttpMessage.h ├── HttpMultipart.cpp ├── HttpMultipart.h ├── HttpPacket.cpp ├── HttpPacket.h ├── HttpParameter.cpp ├── HttpParameter.h ├── HttpParameterList.cpp ├── HttpParameterList.h ├── HttpParser.vcproj ├── HttpParser.vcxproj ├── HttpParser.vcxproj.filters ├── HttpSetCookie.cpp ├── HttpSetCookie.h ├── HttpStatusCode.cpp ├── HttpStatusCode.h ├── HttpUri.cpp ├── HttpUri.h ├── Makefile └── ReadMe.md ├── HttpSimulator ├── HttpExecute.cpp ├── HttpSimulator.cpp ├── HttpSimulator.h ├── HttpSimulator.vcproj ├── HttpSimulator.vcxproj ├── HttpSimulator.vcxproj.filters ├── HttpSimulator.xml ├── HttpSimulatorSetup.cpp ├── HttpSimulatorSetup.h ├── HttpSimulatorVersion.h ├── Makefile └── ReadMe.md ├── HttpSpeed ├── HttpSpeed.cpp ├── HttpSpeed.h ├── HttpSpeed.vcproj ├── HttpSpeedArg.cpp ├── HttpSpeedArg.h ├── Makefile ├── ReadMe.md └── TestThread.cpp ├── HttpStack-vs2017.sln ├── HttpStack.sln ├── HttpStack ├── Http2Client.cpp ├── Http2Client.h ├── HttpClient.cpp ├── HttpClient.h ├── HttpClient2.cpp ├── HttpClient2.h ├── HttpStack.cpp ├── HttpStack.h ├── HttpStack.vcproj ├── HttpStack.vcxproj ├── HttpStack.vcxproj.filters ├── HttpStackCallBack.h ├── HttpStackHttp2.hpp ├── HttpStackVersion.h ├── HttpStackWebSocket.hpp ├── Makefile ├── ReadMe.md ├── WebSocketClient.cpp ├── WebSocketClient.h ├── WebSocketClientThread.hpp ├── WebSocketPacket.cpp └── WebSocketPacket.h ├── JsonBeautiful ├── JsonBeautiful.cpp ├── JsonBeautiful.h ├── JsonBeautiful.rc ├── JsonBeautiful.vcproj ├── JsonBeautifulDlg.cpp ├── JsonBeautifulDlg.h ├── ReadMe.md ├── res │ ├── JsonBeautiful.ico │ └── JsonBeautiful.rc2 ├── resource.h ├── stdafx.cpp ├── stdafx.h └── targetver.h ├── JsonParser ├── JsonArray.cpp ├── JsonArray.h ├── JsonBool.cpp ├── JsonBool.h ├── JsonInt.cpp ├── JsonInt.h ├── JsonNull.cpp ├── JsonNull.h ├── JsonNumber.cpp ├── JsonNumber.h ├── JsonObject.cpp ├── JsonObject.h ├── JsonParser.vcproj ├── JsonParser.vcxproj ├── JsonParser.vcxproj.filters ├── JsonString.cpp ├── JsonString.h ├── JsonType.cpp ├── JsonType.h ├── Makefile └── ReadMe.md ├── LICENSE ├── Makefile ├── Makefile.mk ├── Publish ├── HttpNoCacheProxy.zip ├── HttpSimulator.zip ├── HttpSpeed.zip └── ReadMe.md ├── ReadMe.md ├── SVN.txt ├── SendFirebaseMessage ├── ReadMe.md ├── SendFirebaseMessage.cpp └── SendFirebaseMessage.vcproj ├── SendIphonePush ├── SendIphonePush.cpp ├── SendIphonePush.vcproj └── iphone.pem ├── SipPcap ├── PacketHeader.cpp ├── PacketHeader.h ├── PcapSave.cpp ├── PcapSave.h ├── PcapTcpMap.cpp ├── PcapTcpMap.h ├── ReadMe.md └── SipPcap.vcproj ├── SipPlatform ├── AutoRelease.h ├── Base64.cpp ├── Base64.h ├── Directory.cpp ├── Directory.h ├── FileLog.cpp ├── FileLog.h ├── FileUtility.cpp ├── FileUtility.h ├── Log.cpp ├── Log.h ├── Makefile ├── MemoryDebug.h ├── MonitorString.cpp ├── MonitorString.h ├── ReadMe.md ├── SafeCount.cpp ├── SafeCount.h ├── ServerUtility.cpp ├── ServerUtility.h ├── SipMd5.cpp ├── SipMd5.h ├── SipMutex.cpp ├── SipMutex.h ├── SipPlatform.vcproj ├── SipPlatform.vcxproj ├── SipPlatform.vcxproj.filters ├── SipPlatformDefine.h ├── SipTcp.cpp ├── SipTcp.h ├── SipUdp.cpp ├── SipUdp.h ├── StringMap.cpp ├── StringMap.h ├── StringUtility.cpp ├── StringUtility.h ├── TimeString.cpp ├── TimeString.h ├── TimeUtility.cpp └── TimeUtility.h ├── TcpStack ├── FileLogSetup.cpp ├── FileLogSetup.h ├── Makefile ├── ReadMe.md ├── TcpClientMap.cpp ├── TcpClientMap.h ├── TcpClientThread.cpp ├── TcpListenThread.cpp ├── TcpNoPipeThread.cpp ├── TcpPipeThread.cpp ├── TcpSessionList.cpp ├── TcpSessionList.h ├── TcpSessionMap.cpp ├── TcpSessionMap.h ├── TcpStack.cpp ├── TcpStack.h ├── TcpStack.vcproj ├── TcpStack.vcxproj ├── TcpStack.vcxproj.filters ├── TcpStackCallBack.h ├── TcpStackSetup.cpp ├── TcpStackSetup.h ├── TcpThread.h ├── TcpThreadList.cpp ├── TcpThreadList.h ├── TlsFunction.cpp └── TlsFunction.h ├── TestGoogleDownload ├── GetFileName.cpp ├── PrintUrl.cpp ├── TestGoogleDownload.cpp ├── TestGoogleDownload.h └── TestGoogleDownload.vcproj ├── TestHtmlParser ├── Main.cpp ├── Makefile ├── ReadMe.md ├── TestHtmlAttribute.cpp ├── TestHtmlClass.cpp ├── TestHtmlElement.cpp ├── TestHtmlGetText.cpp ├── TestHtmlParser.vcproj ├── TestHtmlParser.vcxproj ├── TestHtmlParser.vcxproj.filters └── TestHtmlUrlList.cpp ├── TestHttp2Client ├── Main.cpp ├── Makefile ├── ReadMe.md ├── TestHttp2Client.h ├── TestHttp2Client.vcproj ├── TestHttp2Client.vcxproj ├── TestHttp2Client.vcxproj.filters ├── TestHttp2ClientGet.cpp └── TestHttp2ClientLoop.cpp ├── TestHttpClient ├── Main.cpp ├── Makefile ├── ReadMe.md ├── TestHttpClient.h ├── TestHttpClient.vcproj ├── TestHttpClient.vcxproj ├── TestHttpClient.vcxproj.filters ├── TestHttpClient2Get.cpp ├── TestHttpClient2Loop.cpp ├── TestHttpClientGet.cpp ├── TestHttpClientPost.cpp ├── TestHttpClientSoap.cpp └── TestHttpClientUpload.cpp ├── TestHttpParser ├── Main.cpp ├── Makefile ├── ReadMe.md ├── TestHttp2Conversion.cpp ├── TestHttp2Header.cpp ├── TestHttp2HuffmanCode.cpp ├── TestHttpMultipart.cpp ├── TestHttpPacket.cpp ├── TestHttpParameter.cpp ├── TestHttpParser.vcproj ├── TestHttpParser.vcxproj ├── TestHttpParser.vcxproj.filters └── TestHttpSetCookie.cpp ├── TestHttpStack ├── Main.cpp ├── Makefile ├── ReadMe.md ├── SimpleHttpServer.cpp ├── SimpleHttpServer.h ├── TestHttpStack.vcproj ├── TestHttpStack.vcxproj ├── TestHttpStack.vcxproj.filters ├── TestHttpStack.vcxproj.user ├── WebSocketEchoClient.html └── cert.pem ├── TestHttpStackMfc ├── ReadMe.md ├── SimpleHttpServer.cpp ├── SimpleHttpServer.h ├── TestHttpStackMfc.cpp ├── TestHttpStackMfc.h ├── TestHttpStackMfc.rc ├── TestHttpStackMfc.vcxproj ├── TestHttpStackMfc.vcxproj.filters ├── TestHttpStackMfc.vcxproj.user ├── TestHttpStackMfcDlg.cpp ├── TestHttpStackMfcDlg.h ├── res │ ├── TestHttpStackMfc.ico │ ├── TestHttpStackMfc.rc2 │ ├── Toolbar.bmp │ └── Toolbar256.bmp ├── resource.h ├── stdafx.cpp ├── stdafx.h └── targetver.h ├── TestJsonParser ├── Main.cpp ├── Main.h ├── Makefile ├── ReadMe.md ├── SampleJsonArray.cpp ├── SampleJsonObject.cpp ├── TestJsonArray.cpp ├── TestJsonObject.cpp ├── TestJsonObjectNewLine.cpp ├── TestJsonParser.vcproj ├── TestJsonParser.vcxproj └── TestJsonParser.vcxproj.filters ├── TestJsonServer ├── JsonServer.cpp ├── JsonServer.h ├── Main.cpp ├── Makefile ├── ReadMe.md ├── Setup.cpp ├── Setup.h ├── TestJsonServer.vcproj └── TestJsonServer.xml ├── TestLunar ├── TestLunar.cpp └── TestLunar.vcproj ├── TestNaverCafeSearch ├── TestNaverCafeSearch.cpp ├── TestNaverCafeSearch.h └── TestNaverCafeSearch.vcproj ├── TestSipPlatform ├── TestSipPlatform.cpp ├── TestSipPlatform.h ├── TestSipPlatform.vcproj ├── TestStringUtility.cpp └── TestTimeString.cpp ├── TestTcpStack ├── ClientThread.cpp ├── ReadMe.md ├── ServerCallBack.cpp ├── ServerCallBack.h ├── TestTcpStack.cpp ├── TestTcpStack.h ├── TestTcpStack.vcproj ├── TestTcpStack.vcxproj └── TestTcpStack.vcxproj.filters ├── TestTimbelSTT ├── TestTimbelSTT.cpp └── TestTimbelSTT.vcproj ├── TestWebRtc ├── CallMap.cpp ├── CallMap.h ├── Main.cpp ├── Makefile ├── ReadMe.md ├── TestWebRtc.vcproj ├── TestWebRtc.vcxproj ├── TestWebRtc.vcxproj.filters ├── UserMap.cpp ├── UserMap.h ├── WebRtcServer.cpp ├── WebRtcServer.h └── html │ ├── index.html │ ├── web_rtc.js │ └── web_rtc_signal.js ├── TestWebService ├── Readme.md └── WebService1 │ ├── WebService1.sln │ └── WebService1 │ ├── Properties │ └── AssemblyInfo.cs │ ├── Service1.asmx │ ├── Service1.asmx.cs │ ├── Web.config │ └── WebService1.csproj ├── TestWebSocketClient ├── TestWebSocketClient.cpp └── TestWebSocketClient.vcproj ├── TestWhisper ├── Makefile ├── TestWhisper.cpp ├── TestWhisper.h ├── TestWhisper.vcproj ├── WhisperHttpServer.cpp ├── WhisperHttpServer.h ├── WhisperMap.cpp ├── WhisperMap.h ├── WhisperThread.cpp └── index.html ├── TestWsdlParser ├── Makefile ├── ReadMe.md ├── SoapGlobalWeatherSoap.cpp ├── SoapGlobalWeatherSoap.h ├── SoapService1Soap.cpp ├── SoapService1Soap.h ├── TestGlobalWeatherSoap.cpp ├── TestWebService1.cpp ├── TestWsdlParser.cpp ├── TestWsdlParser.vcproj ├── TestWsdlParser.vcxproj ├── TestWsdlParser.vcxproj.filters ├── WebService1.xml └── globalweather.xml ├── TestXmlParser ├── ReadMe.md ├── TestXmlParser.cpp ├── TestXmlParser.vcproj ├── TestXmlParser.vcxproj └── TestXmlParser.vcxproj.filters ├── WpdPack ├── 32bit │ ├── Packet.lib │ └── wpcap.lib ├── 64bit │ ├── Packet.lib │ └── wpcap.lib ├── Readme.md └── include │ ├── Packet32.h │ ├── Win32-Extensions.h │ ├── bittypes.h │ ├── ip6_misc.h │ ├── pcap-bpf.h │ ├── pcap-namedb.h │ ├── pcap-stdinc.h │ ├── pcap.h │ ├── pcap │ ├── bluetooth.h │ ├── bpf.h │ ├── namedb.h │ ├── pcap.h │ ├── sll.h │ ├── usb.h │ └── vlan.h │ └── remote-ext.h ├── WsdlParser ├── Makefile ├── ReadMe.md ├── SoapArg.cpp ├── SoapArg.h ├── SoapClass.cpp ├── SoapClass.h ├── SoapMethod.cpp ├── SoapMethod.h ├── WsdlMessage.cpp ├── WsdlMessage.h ├── WsdlParser.vcproj ├── WsdlParser.vcxproj └── WsdlParser.vcxproj.filters ├── XmlParser ├── Makefile ├── ReadMe.md ├── ReadMe.txt ├── XmlElement.cpp ├── XmlElement.h ├── XmlParser.vcproj ├── XmlParser.vcxproj ├── XmlParser.vcxproj.filters ├── XmlSearch.cpp └── XmlSearch.h ├── doc ├── C++ HTTP stack 및 TCP stack 설정 파일.txt ├── C++ HTTP stack 및 TCP stack 설정.txt ├── HTTP stack 아키텍처.pptx ├── post.html ├── rfc │ ├── rfc6455-websocket.txt │ ├── rfc7540-http2.txt │ └── rfc7541-hpack.txt └── upload.html └── openssl ├── ReadMe.md ├── linux └── 64bit │ ├── ReadMe.md │ ├── include │ └── openssl │ │ ├── aes.h │ │ ├── asn1.h │ │ ├── asn1_mac.h │ │ ├── asn1t.h │ │ ├── bio.h │ │ ├── blowfish.h │ │ ├── bn.h │ │ ├── buffer.h │ │ ├── camellia.h │ │ ├── cast.h │ │ ├── cmac.h │ │ ├── cms.h │ │ ├── comp.h │ │ ├── conf.h │ │ ├── conf_api.h │ │ ├── crypto.h │ │ ├── des.h │ │ ├── des_old.h │ │ ├── dh.h │ │ ├── dsa.h │ │ ├── dso.h │ │ ├── dtls1.h │ │ ├── e_os2.h │ │ ├── ebcdic.h │ │ ├── ec.h │ │ ├── ecdh.h │ │ ├── ecdsa.h │ │ ├── engine.h │ │ ├── err.h │ │ ├── evp.h │ │ ├── hmac.h │ │ ├── idea.h │ │ ├── krb5_asn.h │ │ ├── kssl.h │ │ ├── lhash.h │ │ ├── md4.h │ │ ├── md5.h │ │ ├── mdc2.h │ │ ├── modes.h │ │ ├── obj_mac.h │ │ ├── objects.h │ │ ├── ocsp.h │ │ ├── opensslconf.h │ │ ├── opensslv.h │ │ ├── ossl_typ.h │ │ ├── pem.h │ │ ├── pem2.h │ │ ├── pkcs12.h │ │ ├── pkcs7.h │ │ ├── pqueue.h │ │ ├── rand.h │ │ ├── rc2.h │ │ ├── rc4.h │ │ ├── ripemd.h │ │ ├── rsa.h │ │ ├── safestack.h │ │ ├── seed.h │ │ ├── sha.h │ │ ├── srp.h │ │ ├── srtp.h │ │ ├── ssl.h │ │ ├── ssl2.h │ │ ├── ssl23.h │ │ ├── ssl3.h │ │ ├── stack.h │ │ ├── symhacks.h │ │ ├── tls1.h │ │ ├── ts.h │ │ ├── txt_db.h │ │ ├── ui.h │ │ ├── ui_compat.h │ │ ├── whrlpool.h │ │ ├── x509.h │ │ ├── x509_vfy.h │ │ └── x509v3.h │ └── lib │ ├── libcrypto.a │ └── libssl.a └── window ├── 32bit ├── Readme.txt ├── bin │ └── openssl.exe ├── include │ └── openssl │ │ ├── aes.h │ │ ├── applink.c │ │ ├── asn1.h │ │ ├── asn1_mac.h │ │ ├── asn1t.h │ │ ├── bio.h │ │ ├── blowfish.h │ │ ├── bn.h │ │ ├── buffer.h │ │ ├── camellia.h │ │ ├── cast.h │ │ ├── cmac.h │ │ ├── cms.h │ │ ├── comp.h │ │ ├── conf.h │ │ ├── conf_api.h │ │ ├── crypto.h │ │ ├── des.h │ │ ├── des_old.h │ │ ├── dh.h │ │ ├── dsa.h │ │ ├── dso.h │ │ ├── dtls1.h │ │ ├── e_os2.h │ │ ├── ebcdic.h │ │ ├── ec.h │ │ ├── ecdh.h │ │ ├── ecdsa.h │ │ ├── engine.h │ │ ├── err.h │ │ ├── evp.h │ │ ├── hmac.h │ │ ├── idea.h │ │ ├── krb5_asn.h │ │ ├── kssl.h │ │ ├── lhash.h │ │ ├── md2.h │ │ ├── md4.h │ │ ├── md5.h │ │ ├── mdc2.h │ │ ├── modes.h │ │ ├── obj_mac.h │ │ ├── objects.h │ │ ├── ocsp.h │ │ ├── opensslconf.h │ │ ├── opensslv.h │ │ ├── ossl_typ.h │ │ ├── pem.h │ │ ├── pem2.h │ │ ├── pkcs12.h │ │ ├── pkcs7.h │ │ ├── pq_compat.h │ │ ├── pqueue.h │ │ ├── rand.h │ │ ├── rc2.h │ │ ├── rc4.h │ │ ├── ripemd.h │ │ ├── rsa.h │ │ ├── safestack.h │ │ ├── seed.h │ │ ├── sha.h │ │ ├── srp.h │ │ ├── srtp.h │ │ ├── ssl.h │ │ ├── ssl2.h │ │ ├── ssl23.h │ │ ├── ssl3.h │ │ ├── stack.h │ │ ├── store.h │ │ ├── symhacks.h │ │ ├── tls1.h │ │ ├── tmdiff.h │ │ ├── ts.h │ │ ├── txt_db.h │ │ ├── ui.h │ │ ├── ui_compat.h │ │ ├── whrlpool.h │ │ ├── x509.h │ │ ├── x509_vfy.h │ │ └── x509v3.h ├── lib-debug │ ├── lib.pdb │ ├── libeay32.lib │ └── ssleay32.lib ├── lib-vc2017 │ ├── lib.pdb │ ├── libeay32.lib │ └── ssleay32.lib ├── lib │ ├── lib.pdb │ ├── libeay32.lib │ └── ssleay32.lib └── openssl.cnf └── 64bit ├── Readme.txt ├── bin └── openssl.exe ├── include └── openssl │ ├── aes.h │ ├── applink.c │ ├── asn1.h │ ├── asn1_mac.h │ ├── asn1t.h │ ├── bio.h │ ├── blowfish.h │ ├── bn.h │ ├── buffer.h │ ├── camellia.h │ ├── cast.h │ ├── cmac.h │ ├── cms.h │ ├── comp.h │ ├── conf.h │ ├── conf_api.h │ ├── crypto.h │ ├── des.h │ ├── des_old.h │ ├── dh.h │ ├── dsa.h │ ├── dso.h │ ├── dtls1.h │ ├── e_os2.h │ ├── ebcdic.h │ ├── ec.h │ ├── ecdh.h │ ├── ecdsa.h │ ├── engine.h │ ├── err.h │ ├── evp.h │ ├── hmac.h │ ├── idea.h │ ├── krb5_asn.h │ ├── kssl.h │ ├── lhash.h │ ├── md2.h │ ├── md4.h │ ├── md5.h │ ├── mdc2.h │ ├── modes.h │ ├── obj_mac.h │ ├── objects.h │ ├── ocsp.h │ ├── opensslconf.h │ ├── opensslv.h │ ├── ossl_typ.h │ ├── pem.h │ ├── pem2.h │ ├── pkcs12.h │ ├── pkcs7.h │ ├── pq_compat.h │ ├── pqueue.h │ ├── rand.h │ ├── rc2.h │ ├── rc4.h │ ├── ripemd.h │ ├── rsa.h │ ├── safestack.h │ ├── seed.h │ ├── sha.h │ ├── srp.h │ ├── srtp.h │ ├── ssl.h │ ├── ssl2.h │ ├── ssl23.h │ ├── ssl3.h │ ├── stack.h │ ├── store.h │ ├── symhacks.h │ ├── tls1.h │ ├── tmdiff.h │ ├── ts.h │ ├── txt_db.h │ ├── ui.h │ ├── ui_compat.h │ ├── whrlpool.h │ ├── x509.h │ ├── x509_vfy.h │ └── x509v3.h ├── lib-debug ├── lib.pdb ├── libeay32.lib └── ssleay32.lib ├── lib-vc2017 ├── lib.pdb ├── libeay32.lib └── ssleay32.lib ├── lib ├── lib.pdb ├── libeay32.lib └── ssleay32.lib └── openssl.cnf /CreateGplClass/CreateGplClass.vcproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/CreateGplClass/CreateGplClass.vcproj -------------------------------------------------------------------------------- /CreateGplClass/CreateGplClass.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | {4FC737F1-C7A5-4376-A066-2A32D752A2FF} 6 | cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx 7 | 8 | 9 | 10 | 11 | 소스 파일 12 | 13 | 14 | 15 | 16 | 소스 파일 17 | 18 | 19 | 소스 파일 20 | 21 | 22 | -------------------------------------------------------------------------------- /CreateGplClass/CreateHeaderFile.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/CreateGplClass/CreateHeaderFile.hpp -------------------------------------------------------------------------------- /CreateGplClass/CreateSourceFile.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/CreateGplClass/CreateSourceFile.hpp -------------------------------------------------------------------------------- /CreateGplClass/ReadMe.md: -------------------------------------------------------------------------------- 1 | # CreateGplClass 프로그램 2 | 3 | ## 개요 4 | 5 | * GPL 라이선스 문구가 포함된 C++ 클래스 소스 코드 생성 프로그램 개발 6 | 7 | ## 개발자 정보 8 | 9 | * 이메일 : websearch@naver.com 10 | * 블로그 : http://blog.naver.com/websearch 11 | 12 | ## 라이선스 13 | 14 | * 본 프로젝트의 라이선스는 GPLv3 이고 기업용 라이선스는 websearch@naver.com 으로 문의해 주세요. 15 | -------------------------------------------------------------------------------- /HtmlParser/HtmlAttribute.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2012 Yee Young Han (http://blog.naver.com/websearch) 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #include "HtmlAttribute.h" 20 | #include "MemoryDebug.h" 21 | 22 | CHtmlAttributeValue::CHtmlAttributeValue() : m_cSep('"') 23 | { 24 | } 25 | -------------------------------------------------------------------------------- /HtmlParser/HtmlAttribute.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/HtmlParser/HtmlAttribute.h -------------------------------------------------------------------------------- /HtmlParser/HtmlElement.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/HtmlParser/HtmlElement.cpp -------------------------------------------------------------------------------- /HtmlParser/HtmlElement.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/HtmlParser/HtmlElement.h -------------------------------------------------------------------------------- /HtmlParser/HtmlElementUrl.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/HtmlParser/HtmlElementUrl.cpp -------------------------------------------------------------------------------- /HtmlParser/HtmlElementUrl.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2021 Yee Young Han (http://blog.naver.com/websearch) 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #ifndef _HTML_ELEMENT_URL_H_ 20 | #define _HTML_ELEMENT_URL_H_ 21 | 22 | #include "HtmlElement.h" 23 | #include "StringUtility.h" 24 | 25 | enum EHtmlUrlType 26 | { 27 | E_HUT_NULL = 0x00, 28 | E_HUT_LINK = 0x01, 29 | E_HUT_SCRIPT = 0x02, 30 | E_HUT_IMG = 0x04 31 | }; 32 | 33 | class CHtmlElementUrl : public CHtmlElement 34 | { 35 | public: 36 | CHtmlElementUrl(); 37 | ~CHtmlElementUrl(); 38 | 39 | bool GetUrlList( STRING_LIST & clsUrlList ); 40 | void SetType( int iType ); 41 | 42 | private: 43 | bool GetUrlList( HTML_ELEMENT_LIST & clsElementList, STRING_LIST & clsUrlList ); 44 | 45 | int m_iType; 46 | }; 47 | 48 | #endif 49 | -------------------------------------------------------------------------------- /HtmlParser/HtmlParser.vcproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/HtmlParser/HtmlParser.vcproj -------------------------------------------------------------------------------- /HtmlParser/HtmlParser.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | {4FC737F1-C7A5-4376-A066-2A32D752A2FF} 6 | cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx 7 | 8 | 9 | {93995380-89BD-4b04-88EB-625FBE52EBFB} 10 | h;hpp;hxx;hm;inl;inc;xsd 11 | 12 | 13 | 14 | 15 | 소스 파일 16 | 17 | 18 | 소스 파일 19 | 20 | 21 | 소스 파일 22 | 23 | 24 | 25 | 26 | 헤더 파일 27 | 28 | 29 | 헤더 파일 30 | 31 | 32 | 헤더 파일 33 | 34 | 35 | -------------------------------------------------------------------------------- /HtmlParser/HtmlSearch.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/HtmlParser/HtmlSearch.cpp -------------------------------------------------------------------------------- /HtmlParser/HtmlSearch.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/HtmlParser/HtmlSearch.h -------------------------------------------------------------------------------- /HtmlParser/Makefile: -------------------------------------------------------------------------------- 1 | # Makefile for HtmlParser 2 | # 3 | # programmer : yee young han ( websearch@naver.com ) 4 | # : http://blog.naver.com/websearch 5 | # start date : 2020/02/07 6 | 7 | include ../Makefile.mk 8 | 9 | INC=-I../SipPlatform 10 | 11 | .SUFFIXES: .o .cpp 12 | %.o : %.cpp 13 | $(CC) $(CFLAGS) -c $< $(INC) 14 | 15 | all: libhtmlparser.a 16 | 17 | LIB_OBJ=HtmlAttribute.o HtmlElement.o HtmlElementUrl.o HtmlSearch.o 18 | 19 | libhtmlparser.a: $(LIB_OBJ) 20 | ar crv $@ $(LIB_OBJ) 21 | 22 | clean: 23 | rm -f *.a 24 | rm -f *.o 25 | rm -f core.* 26 | 27 | -------------------------------------------------------------------------------- /HtmlParser/ReadMe.md: -------------------------------------------------------------------------------- 1 | # HtmlParser 라이브러리 2 | 3 | ### 개요 4 | 5 | * C++ STL 라이브러리를 이용한 HTML 문서 파싱/생성 라이브러리 개발 6 | 7 | ### 개발자 정보 8 | 9 | * 이메일 : websearch@naver.com 10 | * 블로그 : http://blog.naver.com/websearch 11 | 12 | ### 라이선스 13 | 14 | * 본 프로젝트의 라이선스는 GPLv3 이고 기업용 라이선스는 websearch@naver.com 으로 문의해 주세요. 15 | -------------------------------------------------------------------------------- /Http2Parser/Http2Conversion.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/Http2Parser/Http2Conversion.cpp -------------------------------------------------------------------------------- /Http2Parser/Http2Conversion.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/Http2Parser/Http2Conversion.h -------------------------------------------------------------------------------- /Http2Parser/Http2Define.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/Http2Parser/Http2Define.h -------------------------------------------------------------------------------- /Http2Parser/Http2Frame.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/Http2Parser/Http2Frame.cpp -------------------------------------------------------------------------------- /Http2Parser/Http2Frame.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/Http2Parser/Http2Frame.h -------------------------------------------------------------------------------- /Http2Parser/Http2FrameList.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/Http2Parser/Http2FrameList.cpp -------------------------------------------------------------------------------- /Http2Parser/Http2FrameList.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/Http2Parser/Http2FrameList.h -------------------------------------------------------------------------------- /Http2Parser/Http2Header.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/Http2Parser/Http2Header.cpp -------------------------------------------------------------------------------- /Http2Parser/Http2Header.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/Http2Parser/Http2Header.h -------------------------------------------------------------------------------- /Http2Parser/Http2HpackHeader.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/Http2Parser/Http2HpackHeader.cpp -------------------------------------------------------------------------------- /Http2Parser/Http2HpackHeader.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/Http2Parser/Http2HpackHeader.h -------------------------------------------------------------------------------- /Http2Parser/Http2HpackHeaderList.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/Http2Parser/Http2HpackHeaderList.cpp -------------------------------------------------------------------------------- /Http2Parser/Http2HpackHeaderList.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/Http2Parser/Http2HpackHeaderList.h -------------------------------------------------------------------------------- /Http2Parser/Http2HuffmanCode.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/Http2Parser/Http2HuffmanCode.cpp -------------------------------------------------------------------------------- /Http2Parser/Http2HuffmanCode.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2012 Yee Young Han (http://blog.naver.com/websearch) 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #ifndef _HTTP_HUFFMAN_CODE_H_ 20 | #define _HTTP_HUFFMAN_CODE_H_ 21 | 22 | #include "SipPlatformDefine.h" 23 | 24 | int HuffmanCodeEncode( const uint8_t * pszInput, uint32_t iInputLen, uint8_t * pszOutput, uint32_t iOutputSize ); 25 | int HuffmanCodeDecode( const uint8_t * pszInput, uint32_t iInputLen, uint8_t * pszOutput, uint32_t iOutputSize ); 26 | 27 | #endif 28 | -------------------------------------------------------------------------------- /Http2Parser/Http2Packet.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/Http2Parser/Http2Packet.cpp -------------------------------------------------------------------------------- /Http2Parser/Http2Packet.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/Http2Parser/Http2Packet.h -------------------------------------------------------------------------------- /Http2Parser/Http2Parser.vcproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/Http2Parser/Http2Parser.vcproj -------------------------------------------------------------------------------- /Http2Parser/Http2Settings.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/Http2Parser/Http2Settings.cpp -------------------------------------------------------------------------------- /Http2Parser/Http2Settings.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/Http2Parser/Http2Settings.h -------------------------------------------------------------------------------- /Http2Parser/Makefile: -------------------------------------------------------------------------------- 1 | # Makefile for Http2Parser 2 | # 3 | # programmer : yee young han ( websearch@naver.com ) 4 | # : http://blog.naver.com/websearch 5 | # start date : 2021/05/28 6 | 7 | include ../Makefile.mk 8 | 9 | INC=-I../HttpParser -I../SipPlatform 10 | 11 | .SUFFIXES: .o .cpp 12 | %.o : %.cpp 13 | $(CC) $(CFLAGS) -c $< $(INC) 14 | 15 | all: libhttp2parser.a 16 | 17 | LIB_OBJ=Http2Conversion.o Http2Frame.o Http2FrameList.o \ 18 | Http2Header.o Http2HpackHeader.o Http2HpackHeaderList.o \ 19 | Http2Packet.o Http2Settings.o Http2HuffmanCode.o 20 | 21 | libhttp2parser.a: $(LIB_OBJ) 22 | ar crv $@ $(LIB_OBJ) 23 | 24 | clean: 25 | rm -f *.a 26 | rm -f *.o 27 | rm -f core.* 28 | 29 | -------------------------------------------------------------------------------- /Http2Parser/ReadMe.md: -------------------------------------------------------------------------------- 1 | # Http2Parser 라이브러리 2 | 3 | ### 개요 4 | 5 | * C++ STL 라이브러리를 이용한 HTTP/2 패킷 파싱/생성 라이브러리 개발 6 | 7 | ### 개발자 정보 8 | 9 | * 이메일 : websearch@naver.com 10 | * 블로그 : http://blog.naver.com/websearch 11 | 12 | ### 라이선스 13 | 14 | * 본 프로젝트의 라이선스는 GPLv3 이고 기업용 라이선스는 websearch@naver.com 으로 문의해 주세요. 15 | -------------------------------------------------------------------------------- /HttpDownloadAll/HttpDownloadAll.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2012 Yee Young Han (http://blog.naver.com/websearch) 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #ifndef _HTTP_DOWNLOAD_ALL_H_ 20 | #define _HTTP_DOWNLOAD_ALL_H_ 21 | 22 | #include "HttpClient.h" 23 | #include "HtmlElement.h" 24 | #include "FileUtility.h" 25 | 26 | #endif 27 | -------------------------------------------------------------------------------- /HttpDownloadAll/HttpDownloadAll.vcproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/HttpDownloadAll/HttpDownloadAll.vcproj -------------------------------------------------------------------------------- /HttpDownloadAll/Makefile: -------------------------------------------------------------------------------- 1 | # Makefile for HttpDownload 2 | # 3 | # programmer : yee young han ( websearch@naver.com ) 4 | # : http://blog.naver.com/websearch 5 | # start date : 2023/06/02 6 | 7 | include ../Makefile.mk 8 | 9 | INC=-I../HtmlParser -I../HttpStack -I../TcpStack -I../Http2Parser -I../HttpParser \ 10 | -I../XmlParser -I../SipPlatform 11 | LIB=-L../HtmlParser -lhtmlparser \ 12 | -L../HttpStack -lhttpstack \ 13 | -L../TcpStack -ltcpstack \ 14 | -L../Http2Parser -lhttp2parser \ 15 | -L../HttpParser -lhttpparser \ 16 | -L../XmlParser -lxmlparser \ 17 | -L../SipPlatform -lsipplatform \ 18 | $(OPENSSL_LIB) -lpthread 19 | 20 | .SUFFIXES: .o .cpp 21 | %.o : %.cpp 22 | $(CC) $(CFLAGS) -c $< $(INC) 23 | 24 | all: HttpDownloadAll.exe 25 | 26 | SRV_OBJ=HttpDownloadAll.o 27 | 28 | HttpDownloadAll.exe: $(SRV_OBJ) 29 | $(CC) $(CFLAGS) -o $@ $(SRV_OBJ) $(INC) $(LIB) 30 | 31 | clean: 32 | rm -f *.exe 33 | rm -f *.o 34 | rm -f core.* 35 | 36 | -------------------------------------------------------------------------------- /HttpDownloadAll/ReadMe.md: -------------------------------------------------------------------------------- 1 | # HttpDownloadAll 프로그램 2 | 3 | ### 개요 4 | 5 | * 폴더의 파일 리스트를 확인할 수 있는 웹서버에서 입력된 URL 하위에 저장된 모든 파일들을 다운로드한다 6 | * 이미 다운로드한 파일은 다운로드하지 않는다. 7 | 8 | ### 개발자 정보 9 | 10 | * 이메일 : websearch@naver.com 11 | * 블로그 : http://blog.naver.com/websearch 12 | 13 | ### 라이선스 14 | 15 | * 본 프로젝트의 라이선스는 GPLv3 이고 기업용 라이선스는 websearch@naver.com 으로 문의해 주세요. 16 | 17 | ### 실행 방법 18 | 19 | ``` 20 | # ./HttpDownloadAll.exe {url} 21 | # ./HttpDownloadAll.exe http://mirror.mariadb.org/yum/10.4/centos8-amd64/rpms 22 | ``` 23 | -------------------------------------------------------------------------------- /HttpNoCacheProxy/HttpNoCacheProxy.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/HttpNoCacheProxy/HttpNoCacheProxy.cpp -------------------------------------------------------------------------------- /HttpNoCacheProxy/HttpNoCacheProxy.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/HttpNoCacheProxy/HttpNoCacheProxy.h -------------------------------------------------------------------------------- /HttpNoCacheProxy/HttpNoCacheProxy.vcproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/HttpNoCacheProxy/HttpNoCacheProxy.vcproj -------------------------------------------------------------------------------- /HttpNoCacheProxy/Main.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/HttpNoCacheProxy/Main.cpp -------------------------------------------------------------------------------- /HttpNoCacheProxy/ReadMe.md: -------------------------------------------------------------------------------- 1 | # HttpNoCacheProxy 프로그램 2 | 3 | ### 개요 4 | 5 | * 웹 프로그램 개발할 때에 웹 브라우저의 캐쉬 때문에 현재 개발된 웹 페이지가 보이지 않는 경우가 발생합니다. 6 | * HttpNoCacheProxy 를 이용하면 항상 현재 개발된 웹 페이지를 웹 브라우저에서 확인할 수 있습니다. 7 | * 웹 브라우저 <-> HttpNoCacheProxy <-> HTTP Server 구조로 연동됩니다. 8 | * 웹 브라우저에서는 HttpNoCacheProxy 의 IP:8080 으로 접속합니다. 9 | * HttpNoCacheProxy 는 HTTP Server IP, Port 를 실행 인자로 입력받습니다. 10 | 11 | ### 개발자 정보 12 | 13 | * 이메일 : websearch@naver.com 14 | * 블로그 : http://blog.naver.com/websearch 15 | 16 | ### 라이선스 17 | 18 | * 본 프로젝트의 라이선스는 GPLv3 이고 기업용 라이선스는 websearch@naver.com 으로 문의해 주세요. 19 | 20 | ### 실행 방법 21 | HttpNoCacheProxy.exe 프로그램은 HTTP Server IP, Port 인자로 아래와 같이 실행하면 됩니다. 22 | 23 | ``` 24 | # HttpNoCacheProxy.exe {HTTP server IP} {HTTP Server Port} 25 | # HttpNoCacheProxy.exe 127.0.0.1 26 | ``` 27 | 28 | -------------------------------------------------------------------------------- /HttpParser/HttpHeader.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/HttpParser/HttpHeader.cpp -------------------------------------------------------------------------------- /HttpParser/HttpHeader.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/HttpParser/HttpHeader.h -------------------------------------------------------------------------------- /HttpParser/HttpMessage.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/HttpParser/HttpMessage.cpp -------------------------------------------------------------------------------- /HttpParser/HttpMessage.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/HttpParser/HttpMessage.h -------------------------------------------------------------------------------- /HttpParser/HttpMultipart.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/HttpParser/HttpMultipart.cpp -------------------------------------------------------------------------------- /HttpParser/HttpMultipart.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2012 Yee Young Han (http://blog.naver.com/websearch) 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #ifndef _HTTP_MULTIPART_H_ 20 | #define _HTTP_MULTIPART_H_ 21 | 22 | #include "StringUtility.h" 23 | #include 24 | 25 | class CHttpMultipartData 26 | { 27 | public: 28 | std::string m_strContentType; 29 | std::string m_strFileName; 30 | std::string m_strValue; 31 | }; 32 | 33 | typedef std::map< std::string, CHttpMultipartData * > HTTP_MULTIPART_DATA_MAP; 34 | 35 | class CHttpMultipart 36 | { 37 | public: 38 | CHttpMultipart(); 39 | ~CHttpMultipart(); 40 | 41 | void SetBoundary( const char * pszBoundary ); 42 | void SetContentType( const char * pszContentType ); 43 | void Clear(); 44 | 45 | int Parse( const std::string & strText ); 46 | int Parse( const char * pszText, int iTextLen ); 47 | int ToString( std::string & strText ); 48 | 49 | private: 50 | int ParseData( const char * pszText, int iTextLen ); 51 | 52 | std::string m_strBoundary; 53 | 54 | public: 55 | HTTP_MULTIPART_DATA_MAP m_clsMap; 56 | }; 57 | 58 | #endif 59 | -------------------------------------------------------------------------------- /HttpParser/HttpPacket.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/HttpParser/HttpPacket.cpp -------------------------------------------------------------------------------- /HttpParser/HttpPacket.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/HttpParser/HttpPacket.h -------------------------------------------------------------------------------- /HttpParser/HttpParameter.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/HttpParser/HttpParameter.cpp -------------------------------------------------------------------------------- /HttpParser/HttpParameter.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/HttpParser/HttpParameter.h -------------------------------------------------------------------------------- /HttpParser/HttpParameterList.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/HttpParser/HttpParameterList.cpp -------------------------------------------------------------------------------- /HttpParser/HttpParameterList.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/HttpParser/HttpParameterList.h -------------------------------------------------------------------------------- /HttpParser/HttpParser.vcproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/HttpParser/HttpParser.vcproj -------------------------------------------------------------------------------- /HttpParser/HttpSetCookie.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/HttpParser/HttpSetCookie.cpp -------------------------------------------------------------------------------- /HttpParser/HttpSetCookie.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2021 Yee Young Han (http://blog.naver.com/websearch) 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #ifndef _HTTP_SET_COOKIE_H_ 20 | #define _HTTP_SET_COOKIE_H_ 21 | 22 | #include 23 | 24 | class CHttpSetCookie 25 | { 26 | public: 27 | CHttpSetCookie(); 28 | ~CHttpSetCookie(); 29 | 30 | int Parse( const char * pszText, int iTextLen ); 31 | void Clear(); 32 | 33 | std::string m_strName; 34 | std::string m_strValue; 35 | std::string m_strDomain; 36 | std::string m_strPath; 37 | 38 | time_t m_iExpireTime; 39 | bool m_bSecure; 40 | }; 41 | 42 | #endif 43 | -------------------------------------------------------------------------------- /HttpParser/HttpStatusCode.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/HttpParser/HttpStatusCode.cpp -------------------------------------------------------------------------------- /HttpParser/HttpUri.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/HttpParser/HttpUri.cpp -------------------------------------------------------------------------------- /HttpParser/HttpUri.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/HttpParser/HttpUri.h -------------------------------------------------------------------------------- /HttpParser/Makefile: -------------------------------------------------------------------------------- 1 | # Makefile for HttpParser 2 | # 3 | # programmer : yee young han ( websearch@naver.com ) 4 | # : http://blog.naver.com/websearch 5 | # start date : 2012/11/22 6 | 7 | include ../Makefile.mk 8 | 9 | INC=-I../SipPlatform 10 | 11 | .SUFFIXES: .o .cpp 12 | %.o : %.cpp 13 | $(CC) $(CFLAGS) -c $< $(INC) 14 | 15 | all: libhttpparser.a 16 | 17 | LIB_OBJ=HttpHeader.o HttpMessage.o HttpPacket.o \ 18 | HttpStatusCode.o HttpUri.o \ 19 | HttpParameter.o HttpParameterList.o \ 20 | HttpMultipart.o HttpSetCookie.o HttpDomainCookie.o 21 | 22 | libhttpparser.a: $(LIB_OBJ) 23 | ar crv $@ $(LIB_OBJ) 24 | 25 | clean: 26 | rm -f *.a 27 | rm -f *.o 28 | rm -f core.* 29 | 30 | -------------------------------------------------------------------------------- /HttpParser/ReadMe.md: -------------------------------------------------------------------------------- 1 | # HttpParser 라이브러리 2 | 3 | ### 개요 4 | 5 | * C++ STL 라이브러리를 이용한 HTTP 메시지 파싱/생성 라이브러리 개발 6 | 7 | ### 개발자 정보 8 | 9 | * 이메일 : websearch@naver.com 10 | * 블로그 : http://blog.naver.com/websearch 11 | 12 | ### 라이선스 13 | 14 | * 본 프로젝트의 라이선스는 GPLv3 이고 기업용 라이선스는 websearch@naver.com 으로 문의해 주세요. 15 | -------------------------------------------------------------------------------- /HttpSimulator/HttpExecute.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/HttpSimulator/HttpExecute.cpp -------------------------------------------------------------------------------- /HttpSimulator/HttpSimulator.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2021 Yee Young Han (http://blog.naver.com/websearch) 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #include "HttpSimulator.h" 20 | #include "HttpSimulatorVersion.h" 21 | 22 | void PrintHelp( const char * pszProgramName ) 23 | { 24 | printf( "%s - version %s\n", pszProgramName, HTTP_SIMULATOR_VERSION ); 25 | printf( "[Usage] %s {setup file}\n", pszProgramName ); 26 | } 27 | 28 | int main( int argc, char * argv[] ) 29 | { 30 | if( argc != 2 ) 31 | { 32 | PrintHelp( argv[0] ); 33 | return 0; 34 | } 35 | 36 | if( !strcmp( argv[1], "-v" ) ) 37 | { 38 | PrintHelp( argv[0] ); 39 | return 0; 40 | } 41 | 42 | CHttpSimulatorSetup clsSetup; 43 | 44 | if( clsSetup.Read( argv[1] ) == false ) 45 | { 46 | return 0; 47 | } 48 | 49 | Execute( clsSetup.m_clsCommandList, clsSetup.m_iLoopCount ); 50 | 51 | return 0; 52 | } 53 | -------------------------------------------------------------------------------- /HttpSimulator/HttpSimulator.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2021 Yee Young Han (http://blog.naver.com/websearch) 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #ifndef _HTTP_SIMULATOR_H_ 20 | #define _HTTP_SIMULATOR_H_ 21 | 22 | #include 23 | #include 24 | #include "HttpSimulatorSetup.h" 25 | 26 | bool Execute( HTTP_SIMULATOR_COMMAND_LIST & clsCommandList, int iLoopCount ); 27 | 28 | #endif 29 | -------------------------------------------------------------------------------- /HttpSimulator/HttpSimulator.vcproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/HttpSimulator/HttpSimulator.vcproj -------------------------------------------------------------------------------- /HttpSimulator/HttpSimulator.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | {4FC737F1-C7A5-4376-A066-2A32D752A2FF} 6 | cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx 7 | 8 | 9 | {97e225a6-afce-4eff-ac15-6e766b57a622} 10 | 11 | 12 | 13 | 14 | 소스 파일 15 | 16 | 17 | 소스 파일 18 | 19 | 20 | 설정파일 21 | 22 | 23 | 24 | 25 | 소스 파일 26 | 27 | 28 | 소스 파일 29 | 30 | 31 | 설정파일 32 | 33 | 34 | -------------------------------------------------------------------------------- /HttpSimulator/HttpSimulator.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | http://127.0.0.1/ 6 | 7 | 8 | 9 | 10 | http://127.0.0.1/ 11 | C:\Temp\HttpSimulator\html\index.html 12 | 13 | 14 | 15 | 16 | POST 17 | http://127.0.0.1/login.html 18 | userid=test&password=1234 19 | 20 | 21 | 22 | 23 | POST 24 | http://127.0.0.1/loginc 25 | node C:\Temp\HttpSimulator\rsa\login.js 26 | 27 | 28 | 29 | 30 | C:\Temp\HttpSimulator\log 31 | 32 | 33 | -------------------------------------------------------------------------------- /HttpSimulator/HttpSimulatorSetup.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/HttpSimulator/HttpSimulatorSetup.cpp -------------------------------------------------------------------------------- /HttpSimulator/HttpSimulatorSetup.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/HttpSimulator/HttpSimulatorSetup.h -------------------------------------------------------------------------------- /HttpSimulator/HttpSimulatorVersion.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/HttpSimulator/HttpSimulatorVersion.h -------------------------------------------------------------------------------- /HttpSimulator/Makefile: -------------------------------------------------------------------------------- 1 | # Makefile for HttpSimulator 2 | # 3 | # programmer : yee young han ( websearch@naver.com ) 4 | # : http://blog.naver.com/websearch 5 | # start date : 2021/06/29 6 | 7 | include ../Makefile.mk 8 | 9 | INC=-I../HttpStack -I../TcpStack -I../HttpParser -I../HtmlParser \ 10 | -I../XmlParser -I../SipPlatform 11 | LIB=-L../HttpStack -lhttpstack \ 12 | -L../TcpStack -ltcpstack \ 13 | -L../HttpParser -lhttpparser \ 14 | -L../HtmlParser -lhtmlparser \ 15 | -L../XmlParser -lxmlparser \ 16 | -L../SipPlatform -lsipplatform \ 17 | $(OPENSSL_LIB) -lpthread 18 | 19 | .SUFFIXES: .o .cpp 20 | %.o : %.cpp 21 | $(CC) $(CFLAGS) -c $< $(INC) 22 | 23 | all: HttpSimulator.exe 24 | 25 | SRV_OBJ=HttpSimulator.o HttpSimulatorSetup.o HttpExecute.o 26 | 27 | HttpSimulator.exe: $(SRV_OBJ) 28 | $(CC) $(CFLAGS) -o $@ $(SRV_OBJ) $(INC) $(LIB) 29 | 30 | clean: 31 | rm -f *.exe 32 | rm -f *.o 33 | rm -f core.* 34 | 35 | -------------------------------------------------------------------------------- /HttpSpeed/HttpSpeed.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/HttpSpeed/HttpSpeed.cpp -------------------------------------------------------------------------------- /HttpSpeed/HttpSpeed.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2012 Yee Young Han (http://blog.naver.com/websearch) 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #ifndef _HTTP_SPEED_H_ 20 | #define _HTTP_SPEED_H_ 21 | 22 | #include "SipPlatformDefine.h" 23 | #include "ServerUtility.h" 24 | #include "TimeUtility.h" 25 | #include "HttpClient.h" 26 | #include "HttpSpeedArg.h" 27 | #include 28 | 29 | bool StartTestThread( int iThreadCount ); 30 | 31 | #endif 32 | -------------------------------------------------------------------------------- /HttpSpeed/HttpSpeed.vcproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/HttpSpeed/HttpSpeed.vcproj -------------------------------------------------------------------------------- /HttpSpeed/Makefile: -------------------------------------------------------------------------------- 1 | # Makefile for HttpSpeed 2 | # 3 | # programmer : yee young han ( websearch@naver.com ) 4 | # : http://blog.naver.com/websearch 5 | # start date : 2018/06/22 6 | 7 | include ../Makefile.mk 8 | 9 | INC=-I../HttpStack -I../TcpStack -I../HttpParser -I../SipPlatform 10 | LIB=-L../HttpStack -lhttpstack \ 11 | -L../TcpStack -ltcpstack \ 12 | -L../HttpParser -lhttpparser \ 13 | -L../SipPlatform -lsipplatform \ 14 | $(OPENSSL_LIB) -lpthread 15 | 16 | .SUFFIXES: .o .cpp 17 | %.o : %.cpp 18 | $(CC) $(CFLAGS) -c $< $(INC) 19 | 20 | all: HttpSpeed.exe 21 | 22 | SRV_OBJ=HttpSpeed.o HttpSpeedArg.o TestThread.o 23 | 24 | HttpSpeed.exe: $(SRV_OBJ) 25 | $(CC) $(CFLAGS) -o $@ $(SRV_OBJ) $(INC) $(LIB) 26 | 27 | clean: 28 | rm -f *.exe 29 | rm -f *.o 30 | rm -f core.* 31 | 32 | -------------------------------------------------------------------------------- /HttpSpeed/ReadMe.md: -------------------------------------------------------------------------------- 1 | # HttpSpeed 2 | 3 | ### 개요 4 | 5 | * 웹서버 성능 분석 프로그램 6 | 7 | ### 개발자 정보 8 | 9 | * 이메일 : websearch@naver.com 10 | * 블로그 : http://blog.naver.com/websearch 11 | 12 | ### 라이선스 13 | 14 | * 본 프로젝트의 라이선스는 GPLv3 이고 기업용 라이선스는 websearch@naver.com 으로 문의해 주세요. 15 | 16 | ### 실행 방법 17 | C++ HTTP stack 기반으로 HTTP 서버 성능 측정 프로그램의 실행 방법은 다음과 같습니다. 18 | 19 | ``` 20 | DOS> HttpSpeed.exe {url} {HTTP 요청 개수} {쓰레드 개수} 21 | ``` 22 | 23 | * {HTTP 요청 개수} 에 총 HTTP 요청할 개수를 입력한다. 24 | * {쓰레드 개수} 에 동시에 HTTP 요청을 전송하고 응답을 수신할 쓰레드 개수를 입력한다. 25 | 26 | 27 | ### 결과 출력 28 | HttpSpeed.exe 가 모든 HTTP 요청 개수를 처리 완료하면 아래의 항목을 출력합니다. 29 | 30 | * 1개의 HTTP 요청/응답 처리에 소요된 최소/최대/평균 시간 ( ms 단위 ) 31 | * HTTP 응답 성공 개수 32 | * HTTP 응답 오류 코드별 개수 33 | * HTTP 응답 오류가 존재하는 경우 출력된다. 34 | 35 | ### 관련 포스트 36 | 37 | * https://blog.naver.com/websearch/221304621705 : HTTP 서버 성능 측정 프로그램 1차 개발 완료 38 | -------------------------------------------------------------------------------- /HttpSpeed/TestThread.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/HttpSpeed/TestThread.cpp -------------------------------------------------------------------------------- /HttpStack/Http2Client.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/HttpStack/Http2Client.cpp -------------------------------------------------------------------------------- /HttpStack/Http2Client.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/HttpStack/Http2Client.h -------------------------------------------------------------------------------- /HttpStack/HttpClient.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/HttpStack/HttpClient.cpp -------------------------------------------------------------------------------- /HttpStack/HttpClient.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/HttpStack/HttpClient.h -------------------------------------------------------------------------------- /HttpStack/HttpClient2.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/HttpStack/HttpClient2.cpp -------------------------------------------------------------------------------- /HttpStack/HttpStack.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/HttpStack/HttpStack.cpp -------------------------------------------------------------------------------- /HttpStack/HttpStack.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/HttpStack/HttpStack.h -------------------------------------------------------------------------------- /HttpStack/HttpStack.vcproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/HttpStack/HttpStack.vcproj -------------------------------------------------------------------------------- /HttpStack/HttpStackCallBack.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/HttpStack/HttpStackCallBack.h -------------------------------------------------------------------------------- /HttpStack/HttpStackVersion.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/HttpStack/HttpStackVersion.h -------------------------------------------------------------------------------- /HttpStack/HttpStackWebSocket.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/HttpStack/HttpStackWebSocket.hpp -------------------------------------------------------------------------------- /HttpStack/Makefile: -------------------------------------------------------------------------------- 1 | # Makefile for HttpStack 2 | # 3 | # programmer : yee young han ( websearch@naver.com ) 4 | # : http://blog.naver.com/websearch 5 | # start date : 2012/11/22 6 | 7 | include ../Makefile.mk 8 | 9 | INC=-I../TcpStack -I../Http2Parser -I../HttpParser -I../XmlParser \ 10 | -I../SipPlatform $(OPENSSL_INC) 11 | 12 | .SUFFIXES: .o .cpp 13 | %.o : %.cpp 14 | $(CC) $(CFLAGS) -c $< $(INC) 15 | 16 | all: libhttpstack.a 17 | 18 | LIB_OBJ=HttpClient.o HttpClient2.o Http2Client.o \ 19 | HttpStack.o WebSocketPacket.o WebSocketClient.o 20 | 21 | libhttpstack.a: $(LIB_OBJ) 22 | ar crv $@ $(LIB_OBJ) 23 | 24 | clean: 25 | rm -f *.a 26 | rm -f *.o 27 | rm -f core.* 28 | 29 | -------------------------------------------------------------------------------- /HttpStack/ReadMe.md: -------------------------------------------------------------------------------- 1 | # HttpStack 라이브러리 2 | 3 | ### 개요 4 | 5 | * C++ STL 라이브러리를 이용한 HTTP 클라이언트 및 서버 라이브러리 개발 6 | * WebSocket 서버 라이브러리 개발 7 | 8 | ### 개발자 정보 9 | 10 | * 이메일 : websearch@naver.com 11 | * 블로그 : http://blog.naver.com/websearch 12 | 13 | ### 라이선스 14 | 15 | * 본 프로젝트의 라이선스는 GPLv3 이고 기업용 라이선스는 websearch@naver.com 으로 문의해 주세요. 16 | -------------------------------------------------------------------------------- /HttpStack/WebSocketClient.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/HttpStack/WebSocketClient.cpp -------------------------------------------------------------------------------- /HttpStack/WebSocketClient.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/HttpStack/WebSocketClient.h -------------------------------------------------------------------------------- /HttpStack/WebSocketClientThread.hpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/HttpStack/WebSocketClientThread.hpp -------------------------------------------------------------------------------- /HttpStack/WebSocketPacket.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/HttpStack/WebSocketPacket.cpp -------------------------------------------------------------------------------- /HttpStack/WebSocketPacket.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/HttpStack/WebSocketPacket.h -------------------------------------------------------------------------------- /JsonBeautiful/JsonBeautiful.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2012 Yee Young Han (http://blog.naver.com/websearch) 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #pragma once 20 | 21 | #ifndef __AFXWIN_H__ 22 | #error "include 'stdafx.h' before including this file for PCH" 23 | #endif 24 | 25 | #include "resource.h" // main symbols 26 | 27 | 28 | // CJsonBeautifulApp: 29 | // See JsonBeautiful.cpp for the implementation of this class 30 | // 31 | 32 | class CJsonBeautifulApp : public CWinAppEx 33 | { 34 | public: 35 | CJsonBeautifulApp(); 36 | 37 | // Overrides 38 | public: 39 | virtual BOOL InitInstance(); 40 | 41 | // Implementation 42 | 43 | DECLARE_MESSAGE_MAP() 44 | }; 45 | 46 | extern CJsonBeautifulApp theApp; -------------------------------------------------------------------------------- /JsonBeautiful/JsonBeautiful.rc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/JsonBeautiful/JsonBeautiful.rc -------------------------------------------------------------------------------- /JsonBeautiful/JsonBeautiful.vcproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/JsonBeautiful/JsonBeautiful.vcproj -------------------------------------------------------------------------------- /JsonBeautiful/JsonBeautifulDlg.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2012 Yee Young Han (http://blog.naver.com/websearch) 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #pragma once 20 | 21 | 22 | // CJsonBeautifulDlg dialog 23 | class CJsonBeautifulDlg : public CDialog 24 | { 25 | // Construction 26 | public: 27 | CJsonBeautifulDlg(CWnd* pParent = NULL); // standard constructor 28 | 29 | // Dialog Data 30 | enum { IDD = IDD_JSONBEAUTIFUL_DIALOG }; 31 | 32 | protected: 33 | virtual void DoDataExchange(CDataExchange* pDX); // DDX/DDV support 34 | 35 | 36 | // Implementation 37 | protected: 38 | HICON m_hIcon; 39 | 40 | // Generated message map functions 41 | virtual BOOL OnInitDialog(); 42 | afx_msg void OnSysCommand(UINT nID, LPARAM lParam); 43 | afx_msg void OnPaint(); 44 | afx_msg HCURSOR OnQueryDragIcon(); 45 | DECLARE_MESSAGE_MAP() 46 | public: 47 | afx_msg void OnBnClickedOk(); 48 | CString m_strInput; 49 | CString m_strOutput; 50 | afx_msg void OnEnChangeInput(); 51 | }; 52 | -------------------------------------------------------------------------------- /JsonBeautiful/ReadMe.md: -------------------------------------------------------------------------------- 1 | # Json 문자열을 보기 편하게 수정하는 프로그램 2 | 3 | ### 개요 4 | 5 | * Json 문자열을 사람이 보기 편하게 수정하는 프로그램입니다. 6 | 7 | ### 개발자 정보 8 | 9 | * 이메일 : websearch@naver.com 10 | * 블로그 : http://blog.naver.com/websearch 11 | 12 | ### 라이선스 13 | 14 | * 본 프로젝트의 라이선스는 GPLv3 이고 기업용 라이선스는 websearch@naver.com 으로 문의해 주세요. 15 | 16 | ### 관련 포스트 17 | 18 | -------------------------------------------------------------------------------- /JsonBeautiful/res/JsonBeautiful.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/JsonBeautiful/res/JsonBeautiful.ico -------------------------------------------------------------------------------- /JsonBeautiful/res/JsonBeautiful.rc2: -------------------------------------------------------------------------------- 1 | // 2 | // JsonBeautiful.RC2 - resources Microsoft Visual C++ does not edit directly 3 | // 4 | 5 | #ifdef APSTUDIO_INVOKED 6 | #error this file is not editable by Microsoft Visual C++ 7 | #endif //APSTUDIO_INVOKED 8 | 9 | 10 | ///////////////////////////////////////////////////////////////////////////// 11 | // Add manually edited resources here... 12 | 13 | ///////////////////////////////////////////////////////////////////////////// 14 | -------------------------------------------------------------------------------- /JsonBeautiful/resource.h: -------------------------------------------------------------------------------- 1 | //{{NO_DEPENDENCIES}} 2 | // Microsoft Visual C++ generated include file. 3 | // Used by JsonBeautiful.rc 4 | // 5 | #define IDM_ABOUTBOX 0x0010 6 | #define IDD_ABOUTBOX 100 7 | #define IDS_ABOUTBOX 101 8 | #define IDD_JSONBEAUTIFUL_DIALOG 102 9 | #define IDR_MAINFRAME 128 10 | #define IDC_INPUT 1000 11 | #define IDC_INPUT2 1001 12 | #define IDC_OUTPUT 1001 13 | 14 | // Next default values for new objects 15 | // 16 | #ifdef APSTUDIO_INVOKED 17 | #ifndef APSTUDIO_READONLY_SYMBOLS 18 | #define _APS_NEXT_RESOURCE_VALUE 129 19 | #define _APS_NEXT_COMMAND_VALUE 32771 20 | #define _APS_NEXT_CONTROL_VALUE 1001 21 | #define _APS_NEXT_SYMED_VALUE 101 22 | #endif 23 | #endif 24 | -------------------------------------------------------------------------------- /JsonBeautiful/stdafx.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2012 Yee Young Han (http://blog.naver.com/websearch) 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #include "stdafx.h" 20 | 21 | 22 | -------------------------------------------------------------------------------- /JsonBeautiful/targetver.h: -------------------------------------------------------------------------------- 1 | 2 | #pragma once 3 | 4 | // The following macros define the minimum required platform. The minimum required platform 5 | // is the earliest version of Windows, Internet Explorer etc. that has the necessary features to run 6 | // your application. The macros work by enabling all features available on platform versions up to and 7 | // including the version specified. 8 | 9 | // Modify the following defines if you have to target a platform prior to the ones specified below. 10 | // Refer to MSDN for the latest info on corresponding values for different platforms. 11 | #ifndef WINVER // Specifies that the minimum required platform is Windows Vista. 12 | #define WINVER 0x0600 // Change this to the appropriate value to target other versions of Windows. 13 | #endif 14 | 15 | #ifndef _WIN32_WINNT // Specifies that the minimum required platform is Windows Vista. 16 | #define _WIN32_WINNT 0x0600 // Change this to the appropriate value to target other versions of Windows. 17 | #endif 18 | 19 | #ifndef _WIN32_WINDOWS // Specifies that the minimum required platform is Windows 98. 20 | #define _WIN32_WINDOWS 0x0410 // Change this to the appropriate value to target Windows Me or later. 21 | #endif 22 | 23 | #ifndef _WIN32_IE // Specifies that the minimum required platform is Internet Explorer 7.0. 24 | #define _WIN32_IE 0x0700 // Change this to the appropriate value to target other versions of IE. 25 | #endif 26 | 27 | -------------------------------------------------------------------------------- /JsonParser/JsonArray.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/JsonParser/JsonArray.cpp -------------------------------------------------------------------------------- /JsonParser/JsonArray.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/JsonParser/JsonArray.h -------------------------------------------------------------------------------- /JsonParser/JsonBool.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/JsonParser/JsonBool.cpp -------------------------------------------------------------------------------- /JsonParser/JsonBool.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/JsonParser/JsonBool.h -------------------------------------------------------------------------------- /JsonParser/JsonInt.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/JsonParser/JsonInt.cpp -------------------------------------------------------------------------------- /JsonParser/JsonInt.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/JsonParser/JsonInt.h -------------------------------------------------------------------------------- /JsonParser/JsonNull.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/JsonParser/JsonNull.cpp -------------------------------------------------------------------------------- /JsonParser/JsonNull.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2012 Yee Young Han (http://blog.naver.com/websearch) 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #ifndef _JSON_NULL_H_ 20 | #define _JSON_NULL_H_ 21 | 22 | #include "JsonType.h" 23 | 24 | class CJsonNull : public CJsonType 25 | { 26 | public: 27 | CJsonNull(); 28 | virtual ~CJsonNull(); 29 | 30 | virtual int Parse( const char * pszText, int iTextLen ); 31 | virtual int ToString( std::string & strText, EJsonNewLine eNewLine = E_JNL_NULL, int iDepth = 0 ); 32 | virtual int GetStringLen( ); 33 | virtual CJsonType * Copy( ); 34 | }; 35 | 36 | #endif 37 | -------------------------------------------------------------------------------- /JsonParser/JsonNumber.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/JsonParser/JsonNumber.cpp -------------------------------------------------------------------------------- /JsonParser/JsonNumber.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/JsonParser/JsonNumber.h -------------------------------------------------------------------------------- /JsonParser/JsonObject.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/JsonParser/JsonObject.cpp -------------------------------------------------------------------------------- /JsonParser/JsonObject.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/JsonParser/JsonObject.h -------------------------------------------------------------------------------- /JsonParser/JsonParser.vcproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/JsonParser/JsonParser.vcproj -------------------------------------------------------------------------------- /JsonParser/JsonString.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/JsonParser/JsonString.cpp -------------------------------------------------------------------------------- /JsonParser/JsonString.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/JsonParser/JsonString.h -------------------------------------------------------------------------------- /JsonParser/JsonType.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2012 Yee Young Han (http://blog.naver.com/websearch) 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #include "SipPlatformDefine.h" 20 | #include "JsonType.h" 21 | #include "MemoryDebug.h" 22 | 23 | std::string CJsonType::m_strNewLine = "\n"; 24 | 25 | CJsonType::CJsonType() 26 | { 27 | } 28 | 29 | CJsonType::~CJsonType() 30 | { 31 | } 32 | 33 | const char * CJsonType::GetTypeString() 34 | { 35 | switch( m_cType ) 36 | { 37 | case JSON_TYPE_STRING: return "string"; 38 | case JSON_TYPE_NUMBER: return "number"; 39 | case JSON_TYPE_INT : return "int"; 40 | case JSON_TYPE_DOUBLE: return "double"; 41 | case JSON_TYPE_OBJECT: return "object"; 42 | case JSON_TYPE_ARRAY : return "array"; 43 | case JSON_TYPE_BOOL : return "bool"; 44 | case JSON_TYPE_NULL : return "null"; 45 | } 46 | 47 | return ""; 48 | } 49 | -------------------------------------------------------------------------------- /JsonParser/JsonType.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/JsonParser/JsonType.h -------------------------------------------------------------------------------- /JsonParser/Makefile: -------------------------------------------------------------------------------- 1 | # Makefile for JsonParser 2 | # 3 | # programmer : yee young han ( websearch@naver.com ) 4 | # : http://blog.naver.com/websearch 5 | # start date : 2012/11/22 6 | 7 | include ../Makefile.mk 8 | 9 | INC=-I../SipPlatform 10 | 11 | .SUFFIXES: .o .cpp 12 | %.o : %.cpp 13 | $(CC) $(CFLAGS) -c $< $(INC) 14 | 15 | all: libjsonparser.a 16 | 17 | LIB_OBJ=JsonArray.o JsonBool.o JsonInt.o JsonNull.o JsonNumber.o \ 18 | JsonObject.o JsonString.o JsonType.o 19 | 20 | libjsonparser.a: $(LIB_OBJ) 21 | ar crv $@ $(LIB_OBJ) 22 | 23 | clean: 24 | rm -f *.a 25 | rm -f *.o 26 | rm -f core.* 27 | 28 | -------------------------------------------------------------------------------- /JsonParser/ReadMe.md: -------------------------------------------------------------------------------- 1 | # JsonParser 라이브러리 2 | 3 | ### 개요 4 | 5 | * C++ STL 라이브러리를 이용한 JSON 메시지 파싱/생성 라이브러리 개발 6 | 7 | ### 개발자 정보 8 | 9 | * 이메일 : websearch@naver.com 10 | * 블로그 : http://blog.naver.com/websearch 11 | 12 | ### 라이선스 13 | 14 | * 본 프로젝트의 라이선스는 GPLv3 이고 기업용 라이선스는 websearch@naver.com 으로 문의해 주세요. 15 | 16 | ### 관련 포스트 17 | 18 | * https://blog.naver.com/websearch/220982955113 : C++ JsonParser 로 Json Array 생성하는 방법 19 | * https://blog.naver.com/websearch/220982797106 : C++ JsonParser 로 Json Object 생성하는 방법 20 | * https://blog.naver.com/websearch/220857574782 : C++ Json 문자열 파서/생성 라이브러리 21 | 22 | -------------------------------------------------------------------------------- /Makefile: -------------------------------------------------------------------------------- 1 | # Makefile for all of C++ HttpStack 2 | # 3 | # programmer : yee young han ( websearch@naver.com ) 4 | # : http://blog.naver.com/websearch 5 | # start date : 2012/07/12 6 | 7 | all: 8 | cd SipPlatform && make 9 | cd HttpParser && make 10 | cd Http2Parser && make 11 | cd TcpStack && make 12 | cd HttpStack && make 13 | cd XmlParser && make 14 | cd WsdlParser && make 15 | cd JsonParser && make 16 | cd HtmlParser && make 17 | cd TestHttpClient && make 18 | cd TestHttpParser && make 19 | cd TestHttpStack && make 20 | cd TestWsdlParser && make 21 | cd TestJsonParser && make 22 | cd TestHtmlParser && make 23 | cd HttpSpeed && make 24 | cd HttpSimulator && make 25 | 26 | clean: 27 | cd SipPlatform && make clean 28 | cd HttpParser && make clean 29 | cd Http2Parser && make clean 30 | cd TcpStack && make clean 31 | cd HttpStack && make clean 32 | cd XmlParser && make clean 33 | cd WsdlParser && make clean 34 | cd JsonParser && make clean 35 | cd HtmlParser && make clean 36 | cd TestHttpClient && make clean 37 | cd TestHttpParser && make clean 38 | cd TestHttpStack && make clean 39 | cd TestWsdlParser && make clean 40 | cd TestJsonParser && make clean 41 | cd TestHtmlParser && make clean 42 | cd HttpSpeed && make clean 43 | cd HttpSimulator && make clean 44 | 45 | install: 46 | 47 | -------------------------------------------------------------------------------- /Makefile.mk: -------------------------------------------------------------------------------- 1 | # Makefile for all of C++ HttpStack 2 | # 3 | # programmer : yee young han ( websearch@naver.com ) 4 | # : http://blog.naver.com/websearch 5 | # start date : 2013/03/26 6 | 7 | CC=g++ 8 | CFLAGS=-Wall -O2 -D_REENTRANT -g #-pg 9 | 10 | OPENSSL_INC=-I../openssl/linux/64bit/include 11 | OPENSSL_LIB=-L../openssl/linux/64bit/lib -lssl -lcrypto -ldl 12 | 13 | -------------------------------------------------------------------------------- /Publish/HttpNoCacheProxy.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/Publish/HttpNoCacheProxy.zip -------------------------------------------------------------------------------- /Publish/HttpSimulator.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/Publish/HttpSimulator.zip -------------------------------------------------------------------------------- /Publish/HttpSpeed.zip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/Publish/HttpSpeed.zip -------------------------------------------------------------------------------- /Publish/ReadMe.md: -------------------------------------------------------------------------------- 1 | # MS 윈도우용 프로그램 2 | 3 | ### 개요 4 | 5 | * MS 윈도우에서 실행 가능한 프로그램 배포 폴더 6 | 7 | ### 개발자 정보 8 | 9 | * 이메일 : websearch@naver.com 10 | * 블로그 : http://blog.naver.com/websearch 11 | 12 | ### 라이선스 13 | 14 | * 본 프로젝트의 라이선스는 GPLv3 이고 기업용 라이선스는 websearch@naver.com 으로 문의해 주세요. 15 | 16 | ### 파일 설명 17 | 18 | * HttpNoCacheProxy.zip : HttpNoCacheProxy 프로그램 19 | * HttpSimulator.zip : HttpSimulator 프로그램 20 | * HttpSpeed.zip : HttpSpeed 프로그램 21 | 22 | -------------------------------------------------------------------------------- /SVN.txt: -------------------------------------------------------------------------------- 1 | https://github.com/YeeYoungHan/cpphttpstack.git/trunk 2 | 3 | -------------------------------------------------------------------------------- /SendFirebaseMessage/ReadMe.md: -------------------------------------------------------------------------------- 1 | # SendFirebaseMessage 프로그램 2 | 3 | ### 개요 4 | 5 | * HttpStack 라이브러리를 이용한 FCM 메시지 전송 예제 개발 6 | 7 | ### 개발자 정보 8 | 9 | * 이메일 : websearch@naver.com 10 | * 블로그 : http://blog.naver.com/websearch 11 | 12 | ### 라이선스 13 | 14 | * 본 프로젝트의 라이선스는 GPLv3 이고 기업용 라이선스는 websearch@naver.com 으로 문의해 주세요. 15 | 16 | ### 실행 방법 17 | 18 | * QQQ 주석을 읽고 소스 코드를 수정한다. 19 | * 빌드한다. 20 | * 실행한다. 21 | 22 | -------------------------------------------------------------------------------- /SendFirebaseMessage/SendFirebaseMessage.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/SendFirebaseMessage/SendFirebaseMessage.cpp -------------------------------------------------------------------------------- /SendFirebaseMessage/SendFirebaseMessage.vcproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/SendFirebaseMessage/SendFirebaseMessage.vcproj -------------------------------------------------------------------------------- /SendIphonePush/SendIphonePush.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/SendIphonePush/SendIphonePush.cpp -------------------------------------------------------------------------------- /SendIphonePush/SendIphonePush.vcproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/SendIphonePush/SendIphonePush.vcproj -------------------------------------------------------------------------------- /SipPcap/PacketHeader.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/SipPcap/PacketHeader.cpp -------------------------------------------------------------------------------- /SipPcap/PacketHeader.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/SipPcap/PacketHeader.h -------------------------------------------------------------------------------- /SipPcap/PcapSave.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/SipPcap/PcapSave.cpp -------------------------------------------------------------------------------- /SipPcap/PcapSave.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/SipPcap/PcapSave.h -------------------------------------------------------------------------------- /SipPcap/PcapTcpMap.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2021 Yee Young Han (http://blog.naver.com/websearch) 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #ifndef _PCAP_TCP_MAP_H_ 20 | #define _PCAP_TCP_MAP_H_ 21 | 22 | #include "SipPlatformDefine.h" 23 | #include 24 | #include 25 | 26 | class CPcapTcpInfo 27 | { 28 | public: 29 | CPcapTcpInfo(); 30 | 31 | uint32_t m_iSeqNum; 32 | }; 33 | 34 | typedef std::map< std::string, CPcapTcpInfo > PCAP_TCP_MAP; 35 | 36 | class CPcapTcpMap 37 | { 38 | public: 39 | CPcapTcpMap(); 40 | ~CPcapTcpMap(); 41 | 42 | bool Select( const char * pszFromIp, u_short iFromPort, const char * pszToIp, u_short iToPort, CPcapTcpInfo ** ppclsInfo ); 43 | 44 | private: 45 | void GetKey( const char * pszFromIp, u_short iFromPort, const char * pszToIp, u_short iToPort, std::string & strKey ); 46 | 47 | PCAP_TCP_MAP m_clsMap; 48 | }; 49 | 50 | #endif 51 | -------------------------------------------------------------------------------- /SipPcap/ReadMe.md: -------------------------------------------------------------------------------- 1 | # SipPcap 라이브러리 2 | 3 | ### 개요 4 | 5 | * pcap 파일로 패킷을 저장하는 라이브러리 개발 6 | 7 | ### 개발자 정보 8 | 9 | * 이메일 : websearch@naver.com 10 | * 블로그 : http://blog.naver.com/websearch 11 | 12 | ### 라이선스 13 | 14 | * 본 프로젝트의 라이선스는 GPLv3 이고 기업용 라이선스는 websearch@naver.com 으로 문의해 주세요. 15 | -------------------------------------------------------------------------------- /SipPcap/SipPcap.vcproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/SipPcap/SipPcap.vcproj -------------------------------------------------------------------------------- /SipPlatform/AutoRelease.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/SipPlatform/AutoRelease.h -------------------------------------------------------------------------------- /SipPlatform/Base64.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/SipPlatform/Base64.cpp -------------------------------------------------------------------------------- /SipPlatform/Base64.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2012 Yee Young Han (http://blog.naver.com/websearch) 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #ifndef _BASE64_H_ 20 | #define _BASE64_H_ 21 | 22 | #include 23 | 24 | int GetBase64EncodeLength( int iLength ); 25 | int GetBase64DecodeLength( int iLength ); 26 | int Base64Encode( const char * pszInput, int iInputLength, char * pszOutput, int iOutputLength ); 27 | int Base64Decode( const char * pszInput, int iInputLength, char * pszOutput, int iOutputLength ); 28 | 29 | bool Base64Encode( const char * pszInput, int iInputLength, std::string & strOutput ); 30 | 31 | #endif 32 | -------------------------------------------------------------------------------- /SipPlatform/Directory.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/SipPlatform/Directory.cpp -------------------------------------------------------------------------------- /SipPlatform/Directory.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/SipPlatform/Directory.h -------------------------------------------------------------------------------- /SipPlatform/FileLog.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/SipPlatform/FileLog.cpp -------------------------------------------------------------------------------- /SipPlatform/FileLog.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/SipPlatform/FileLog.h -------------------------------------------------------------------------------- /SipPlatform/FileUtility.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/SipPlatform/FileUtility.cpp -------------------------------------------------------------------------------- /SipPlatform/FileUtility.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2012 Yee Young Han (http://blog.naver.com/websearch) 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #ifndef _FILE_UTILITY_H_ 20 | #define _FILE_UTILITY_H_ 21 | 22 | #include "SipPlatformDefine.h" 23 | #include 24 | 25 | bool IsExistFile( const char * pszFileName ); 26 | int64_t GetFileSize( const char * pszFileName ); 27 | bool GetFileExt( const char * pszFileName, std::string & strExt ); 28 | bool GetFolderPathOfFilePath( const char * pszFilePath, std::string & strFolder ); 29 | bool GetFileNameOfFilePath( const char * pszFilePath, std::string & strFileName ); 30 | void DelFile( const char * pszFileName ); 31 | 32 | #endif 33 | -------------------------------------------------------------------------------- /SipPlatform/Log.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/SipPlatform/Log.cpp -------------------------------------------------------------------------------- /SipPlatform/Log.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/SipPlatform/Log.h -------------------------------------------------------------------------------- /SipPlatform/Makefile: -------------------------------------------------------------------------------- 1 | # Makefile for SipPlatform 2 | # 3 | # programmer : yee young han ( websearch@naver.com ) 4 | # : http://blog.naver.com/websearch 5 | # start date : 2012/11/22 6 | 7 | include ../Makefile.mk 8 | 9 | INC= 10 | 11 | .SUFFIXES: .o .cpp 12 | %.o : %.cpp 13 | $(CC) $(CFLAGS) -c $< $(INC) 14 | 15 | all: libsipplatform.a 16 | 17 | LIB_OBJ=Directory.o Log.o FileLog.o ServerUtility.o \ 18 | SipMd5.o SipMutex.o \ 19 | SipTcp.o SipUdp.o \ 20 | StringUtility.o StringMap.o \ 21 | TimeString.o TimeUtility.o \ 22 | FileUtility.o Base64.o \ 23 | MonitorString.o \ 24 | SafeCount.o 25 | 26 | libsipplatform.a: $(LIB_OBJ) 27 | ar crv $@ $(LIB_OBJ) 28 | 29 | clean: 30 | rm -f *.a 31 | rm -f *.o 32 | rm -f core.* 33 | 34 | -------------------------------------------------------------------------------- /SipPlatform/MemoryDebug.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/SipPlatform/MemoryDebug.h -------------------------------------------------------------------------------- /SipPlatform/MonitorString.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/SipPlatform/MonitorString.cpp -------------------------------------------------------------------------------- /SipPlatform/MonitorString.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/SipPlatform/MonitorString.h -------------------------------------------------------------------------------- /SipPlatform/ReadMe.md: -------------------------------------------------------------------------------- 1 | # SipPlatform 라이브러리 2 | 3 | ### 개요 4 | 5 | * C++ SIP stack 라이브러리를 위한 기반 라이브러리 개발 6 | * 다양한 OS 환경에서 네트워크, 로그 등의 메소드를 동일하게 실행할 수 있는 라이브러리 7 | 8 | ### 개발자 정보 9 | 10 | * 이메일 : websearch@naver.com 11 | * 블로그 : http://blog.naver.com/websearch 12 | 13 | ### 라이선스 14 | 15 | * 본 프로젝트의 라이선스는 GPLv3 이고 기업용 라이선스는 websearch@naver.com 으로 문의해 주세요. 16 | 17 | -------------------------------------------------------------------------------- /SipPlatform/SafeCount.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/SipPlatform/SafeCount.cpp -------------------------------------------------------------------------------- /SipPlatform/SafeCount.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/SipPlatform/SafeCount.h -------------------------------------------------------------------------------- /SipPlatform/ServerUtility.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/SipPlatform/ServerUtility.cpp -------------------------------------------------------------------------------- /SipPlatform/ServerUtility.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2012 Yee Young Han (http://blog.naver.com/websearch) 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #ifndef _SERVER_UTILITY_H_ 20 | #define _SERVER_UTILITY_H_ 21 | 22 | #ifdef WIN32 23 | #include 24 | #endif 25 | 26 | #include 27 | #include 28 | 29 | void SetCoreDumpEnable(); 30 | bool Fork( bool bIsFork ); 31 | bool ChangeExecuteUser( const char * pszUserId ); 32 | 33 | #ifdef WIN32 34 | bool StartThread( const char * pszName, LPTHREAD_START_ROUTINE lpStartAddress, LPVOID lpParameter ); 35 | #else 36 | bool StartThread( const char * pszName, void *(*lpStartAddress)(void*), void * lpParameter ); 37 | #endif 38 | 39 | #endif 40 | -------------------------------------------------------------------------------- /SipPlatform/SipMd5.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/SipPlatform/SipMd5.cpp -------------------------------------------------------------------------------- /SipPlatform/SipMd5.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2012 Yee Young Han (http://blog.naver.com/websearch) 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #ifndef _MD5_H_ 20 | #define _MD5_H_ 21 | 22 | void SipMd5String( const char * pszPlainText, char result[33] ); 23 | void SipMd5Byte( const char * pszPlainText, unsigned char digest[16] ); 24 | 25 | #endif 26 | -------------------------------------------------------------------------------- /SipPlatform/SipMutex.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/SipPlatform/SipMutex.cpp -------------------------------------------------------------------------------- /SipPlatform/SipMutex.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/SipPlatform/SipMutex.h -------------------------------------------------------------------------------- /SipPlatform/SipPlatform.vcproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/SipPlatform/SipPlatform.vcproj -------------------------------------------------------------------------------- /SipPlatform/SipPlatformDefine.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/SipPlatform/SipPlatformDefine.h -------------------------------------------------------------------------------- /SipPlatform/SipTcp.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/SipPlatform/SipTcp.cpp -------------------------------------------------------------------------------- /SipPlatform/SipTcp.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2012 Yee Young Han (http://blog.naver.com/websearch) 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #ifndef _SIP_TCP_H_ 20 | #define _SIP_TCP_H_ 21 | 22 | #define TCP_INIT_BUF_SIZE 16384 23 | 24 | #include "SipUdp.h" 25 | 26 | bool GetIpByName( const char * szHostName, char * szIp, int iLen ); 27 | Socket TcpConnect( const char * pszIp, int iPort, int iTimeout = 0 ); 28 | int TcpSend( Socket fd, const char * szBuf, int iBufLen ); 29 | int TcpRecv( Socket fd, char * szBuf, int iBufLen, int iSecond ); 30 | int TcpRecvSize( Socket fd, char * szBuf, int iBufLen, int iSecond ); 31 | Socket TcpListen( int iPort, int iListenQ, const char * pszIp = NULL, bool bIpv6 = false ); 32 | Socket TcpAccept( Socket hListenFd, char * pszIp, int iIpSize, int * piPort, bool bIpv6 = false ); 33 | bool GetLocalIpPort( Socket hSocket, std::string & strIp, int & iPort ); 34 | 35 | #ifdef WIN32 36 | int pipe( Socket filedes[2] ); 37 | #endif 38 | 39 | #endif 40 | -------------------------------------------------------------------------------- /SipPlatform/SipUdp.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/SipPlatform/SipUdp.cpp -------------------------------------------------------------------------------- /SipPlatform/SipUdp.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/SipPlatform/SipUdp.h -------------------------------------------------------------------------------- /SipPlatform/StringMap.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/SipPlatform/StringMap.cpp -------------------------------------------------------------------------------- /SipPlatform/StringMap.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/SipPlatform/StringMap.h -------------------------------------------------------------------------------- /SipPlatform/StringUtility.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/SipPlatform/StringUtility.cpp -------------------------------------------------------------------------------- /SipPlatform/TimeString.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/SipPlatform/TimeString.cpp -------------------------------------------------------------------------------- /SipPlatform/TimeString.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2012 Yee Young Han (http://blog.naver.com/websearch) 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #ifndef _TIME_STRING_H_ 20 | #define _TIME_STRING_H_ 21 | 22 | #include 23 | 24 | void LocalTime( time_t iTime, struct tm & sttTm ); 25 | 26 | void GetDateTimeString( time_t iTime, char * pszTime, int iTimeSize ); 27 | void GetDateTimeString( char * pszTime, int iTimeSize ); 28 | 29 | void GetDateString( time_t iTime, char * pszDate, int iDateSize ); 30 | void GetDateString( char * pszDate, int iDateSize ); 31 | 32 | void GetTimeString( time_t iTime, char * pszTime, int iTimeSize ); 33 | void GetTimeString( char * pszTime, int iTimeSize ); 34 | 35 | time_t ParseCookieExpires( const char * pszTime ); 36 | 37 | #endif 38 | -------------------------------------------------------------------------------- /SipPlatform/TimeUtility.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/SipPlatform/TimeUtility.cpp -------------------------------------------------------------------------------- /SipPlatform/TimeUtility.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2012 Yee Young Han (http://blog.naver.com/websearch) 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #ifndef _TIME_UTILITY_H_ 20 | #define _TIME_UTILITY_H_ 21 | 22 | #include "SipPlatformDefine.h" 23 | #include 24 | 25 | #ifdef WIN32 26 | int gettimeofday( struct timeval *tv, struct timezone *tz ); 27 | #endif 28 | 29 | int DiffTimeval( struct timeval * psttOld, struct timeval * psttNew ); 30 | void MiliSleep( int iMiliSecond ); 31 | uint64_t GetCurrentMiliSecond(); 32 | 33 | #endif 34 | -------------------------------------------------------------------------------- /TcpStack/FileLogSetup.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/TcpStack/FileLogSetup.cpp -------------------------------------------------------------------------------- /TcpStack/FileLogSetup.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2012 Yee Young Han (http://blog.naver.com/websearch) 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #ifndef _FILE_LOG_SETUP_H_ 20 | #define _FILE_LOG_SETUP_H_ 21 | 22 | #include "FileLog.h" 23 | #include "XmlElement.h" 24 | 25 | bool SetupFileLog( CFileLog & clsFileLog, CXmlElement & clsElement ); 26 | 27 | #endif 28 | -------------------------------------------------------------------------------- /TcpStack/Makefile: -------------------------------------------------------------------------------- 1 | # Makefile for TcpStack 2 | # 3 | # programmer : yee young han ( websearch@naver.com ) 4 | # : http://blog.naver.com/websearch 5 | # start date : 2012/11/22 6 | 7 | include ../Makefile.mk 8 | 9 | INC=-I../XmlParser -I../SipPlatform $(OPENSSL_INC) 10 | 11 | .SUFFIXES: .o .cpp 12 | %.o : %.cpp 13 | $(CC) $(CFLAGS) -c $< $(INC) 14 | 15 | all: libtcpstack.a 16 | 17 | LIB_OBJ=TcpClientMap.o TcpClientThread.o TcpListenThread.o \ 18 | TcpSessionList.o TcpSessionMap.o \ 19 | TcpStack.o TcpStackSetup.o \ 20 | TcpPipeThread.o TcpNoPipeThread.o TcpThreadList.o TlsFunction.o \ 21 | FileLogSetup.o 22 | 23 | libtcpstack.a: $(LIB_OBJ) 24 | ar crv $@ $(LIB_OBJ) 25 | 26 | clean: 27 | rm -f *.a 28 | rm -f *.o 29 | rm -f core.* 30 | 31 | -------------------------------------------------------------------------------- /TcpStack/ReadMe.md: -------------------------------------------------------------------------------- 1 | # TcpStack 라이브러리 2 | 3 | ### 개요 4 | 5 | * C++ STL 라이브러리를 이용한 TCP 연결/전송/수신 라이브러리 개발 6 | * TCP 클라이언트/서버 프로그램을 위한 라이브러리 개발 7 | 8 | ### 개발자 정보 9 | 10 | * 이메일 : websearch@naver.com 11 | * 블로그 : http://blog.naver.com/websearch 12 | 13 | ### 라이선스 14 | 15 | * 본 프로젝트의 라이선스는 GPLv3 이고 기업용 라이선스는 websearch@naver.com 으로 문의해 주세요. 16 | 17 | ### 관련 포스트 18 | 19 | * https://blog.naver.com/websearch/220902758709 : C++ TCP stack 라이브러리 소개 20 | 21 | -------------------------------------------------------------------------------- /TcpStack/TcpClientMap.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/TcpStack/TcpClientMap.cpp -------------------------------------------------------------------------------- /TcpStack/TcpClientMap.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/TcpStack/TcpClientMap.h -------------------------------------------------------------------------------- /TcpStack/TcpClientThread.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/TcpStack/TcpClientThread.cpp -------------------------------------------------------------------------------- /TcpStack/TcpListenThread.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/TcpStack/TcpListenThread.cpp -------------------------------------------------------------------------------- /TcpStack/TcpNoPipeThread.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/TcpStack/TcpNoPipeThread.cpp -------------------------------------------------------------------------------- /TcpStack/TcpPipeThread.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/TcpStack/TcpPipeThread.cpp -------------------------------------------------------------------------------- /TcpStack/TcpSessionList.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/TcpStack/TcpSessionList.cpp -------------------------------------------------------------------------------- /TcpStack/TcpSessionList.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/TcpStack/TcpSessionList.h -------------------------------------------------------------------------------- /TcpStack/TcpSessionMap.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/TcpStack/TcpSessionMap.cpp -------------------------------------------------------------------------------- /TcpStack/TcpSessionMap.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/TcpStack/TcpSessionMap.h -------------------------------------------------------------------------------- /TcpStack/TcpStack.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/TcpStack/TcpStack.cpp -------------------------------------------------------------------------------- /TcpStack/TcpStack.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/TcpStack/TcpStack.h -------------------------------------------------------------------------------- /TcpStack/TcpStack.vcproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/TcpStack/TcpStack.vcproj -------------------------------------------------------------------------------- /TcpStack/TcpStackCallBack.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/TcpStack/TcpStackCallBack.h -------------------------------------------------------------------------------- /TcpStack/TcpStackSetup.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/TcpStack/TcpStackSetup.cpp -------------------------------------------------------------------------------- /TcpStack/TcpStackSetup.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/TcpStack/TcpStackSetup.h -------------------------------------------------------------------------------- /TcpStack/TcpThread.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2012 Yee Young Han (http://blog.naver.com/websearch) 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #ifndef _TCP_THREAD_H_ 20 | #define _TCP_THREAD_H_ 21 | 22 | #include "SipPlatformDefine.h" 23 | #include "SipTcp.h" 24 | 25 | class CTcpStack; 26 | 27 | class CTcpNoPipeThreadArg 28 | { 29 | public: 30 | CTcpNoPipeThreadArg() : m_bClient(false) 31 | {} 32 | 33 | std::string m_strIp; 34 | int m_iPort; 35 | Socket m_hSocket; 36 | CTcpStack * m_pclsStack; 37 | bool m_bClient; 38 | }; 39 | 40 | bool StartTcpClientThread( const char * pszIp, int iPort, CTcpStack * pclsStack ); 41 | 42 | THREAD_API TcpNoPipeThread( LPVOID lpParameter ); 43 | THREAD_API TcpPipeThread( LPVOID lpParameter ); 44 | THREAD_API TcpListenThread( LPVOID lpParameter ); 45 | 46 | bool IsTcpListenThreadRun(); 47 | 48 | #endif 49 | -------------------------------------------------------------------------------- /TcpStack/TcpThreadList.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/TcpStack/TcpThreadList.cpp -------------------------------------------------------------------------------- /TcpStack/TcpThreadList.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/TcpStack/TcpThreadList.h -------------------------------------------------------------------------------- /TcpStack/TlsFunction.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/TcpStack/TlsFunction.cpp -------------------------------------------------------------------------------- /TestGoogleDownload/GetFileName.cpp: -------------------------------------------------------------------------------- 1 | #include "TestGoogleDownload.h" 2 | 3 | bool GetFileName( std::string & strUrl, std::string & strFileName ) 4 | { 5 | strFileName.clear(); 6 | 7 | std::string strDecode; 8 | 9 | DecodeUri( strUrl, strDecode ); 10 | 11 | int iLen = (int)strDecode.length(); 12 | 13 | for( int i = iLen - 1; i >= 0; --i ) 14 | { 15 | if( strDecode.at(i) == '/' ) 16 | { 17 | strFileName = strDecode.c_str() + i + 1; 18 | break; 19 | } 20 | } 21 | 22 | if( strFileName.empty() ) return false; 23 | 24 | ReplaceString( strFileName, "\\", "" ); 25 | ReplaceString( strFileName, "/", "" ); 26 | ReplaceString( strFileName, ":", "" ); 27 | ReplaceString( strFileName, "*", "" ); 28 | ReplaceString( strFileName, "?", "" ); 29 | ReplaceString( strFileName, "\"", "" ); 30 | ReplaceString( strFileName, "<", "" ); 31 | ReplaceString( strFileName, ">", "" ); 32 | ReplaceString( strFileName, "|", "" ); 33 | 34 | std::string strAnsi; 35 | 36 | Utf8ToAnsi( strFileName.c_str(), strAnsi ); 37 | 38 | if( strstr( strAnsi.c_str(), "?" ) == NULL ) 39 | { 40 | strFileName = strAnsi; 41 | } 42 | 43 | return true; 44 | } 45 | -------------------------------------------------------------------------------- /TestGoogleDownload/TestGoogleDownload.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/TestGoogleDownload/TestGoogleDownload.cpp -------------------------------------------------------------------------------- /TestGoogleDownload/TestGoogleDownload.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2012 Yee Young Han (http://blog.naver.com/websearch) 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #ifndef _TEST_GOOGLE_DOWNLOAD_H_ 20 | #define _TEST_GOOGLE_DOWNLOAD_H_ 21 | 22 | #include "SipPlatformDefine.h" 23 | #include "HttpClient.h" 24 | #include "StringUtility.h" 25 | #include "FileUtility.h" 26 | #include "StringMap.h" 27 | #include "Directory.h" 28 | 29 | #define URL_PRINT_FILEPATH "c:\\temp\\url.txt" 30 | 31 | extern bool gbStop; 32 | 33 | // GetFileName.cpp 34 | bool GetFileName( std::string & strUrl, std::string & strFileName ); 35 | 36 | // PrintUrl.cpp 37 | bool PrintUrl( const char * pszExt, const char * pszSearch ); 38 | 39 | #endif 40 | -------------------------------------------------------------------------------- /TestGoogleDownload/TestGoogleDownload.vcproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/TestGoogleDownload/TestGoogleDownload.vcproj -------------------------------------------------------------------------------- /TestHtmlParser/Makefile: -------------------------------------------------------------------------------- 1 | # Makefile for TestHtmlParser 2 | # 3 | # programmer : yee young han ( websearch@naver.com ) 4 | # : http://blog.naver.com/websearch 5 | # start date : 2020/02/07 6 | 7 | include ../Makefile.mk 8 | 9 | INC=-I../HtmlParser -I../SipPlatform 10 | LIB=-L../HtmlParser -lhtmlparser \ 11 | -L../SipPlatform -lsipplatform \ 12 | -lpthread 13 | 14 | .SUFFIXES: .o .cpp 15 | %.o : %.cpp 16 | $(CC) $(CFLAGS) -c $< $(INC) 17 | 18 | all: TestHtmlParser.exe 19 | 20 | SRV_OBJ=Main.o \ 21 | TestHtmlAttribute.o TestHtmlClass.o TestHtmlElement.o TestHtmlGetText.o \ 22 | TestHtmlUrlList.o 23 | 24 | TestHtmlParser.exe: $(SRV_OBJ) 25 | $(CC) $(CFLAGS) -o $@ $(SRV_OBJ) $(INC) $(LIB) 26 | 27 | clean: 28 | rm -f *.exe 29 | rm -f *.o 30 | rm -f core.* 31 | 32 | -------------------------------------------------------------------------------- /TestHtmlParser/ReadMe.md: -------------------------------------------------------------------------------- 1 | # TestHtmlParser 2 | 3 | ### 개요 4 | 5 | * C++ STL 라이브러리를 이용한 HTML 문서 파서 테스트 프로그램 개발 6 | 7 | ### 개발자 정보 8 | 9 | * 이메일 : websearch@naver.com 10 | * 블로그 : http://blog.naver.com/websearch 11 | 12 | ### 라이선스 13 | 14 | * 본 프로젝트의 라이선스는 GPLv3 이고 기업용 라이선스는 websearch@naver.com 으로 문의해 주세요. 15 | -------------------------------------------------------------------------------- /TestHtmlParser/TestHtmlElement.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/TestHtmlParser/TestHtmlElement.cpp -------------------------------------------------------------------------------- /TestHtmlParser/TestHtmlParser.vcproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/TestHtmlParser/TestHtmlParser.vcproj -------------------------------------------------------------------------------- /TestHtmlParser/TestHtmlParser.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | {4FC737F1-C7A5-4376-A066-2A32D752A2FF} 6 | cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx 7 | 8 | 9 | 10 | 11 | 소스 파일 12 | 13 | 14 | 소스 파일 15 | 16 | 17 | 소스 파일 18 | 19 | 20 | 소스 파일 21 | 22 | 23 | 소스 파일 24 | 25 | 26 | 소스 파일 27 | 28 | 29 | -------------------------------------------------------------------------------- /TestHtmlParser/TestHtmlUrlList.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/TestHtmlParser/TestHtmlUrlList.cpp -------------------------------------------------------------------------------- /TestHttp2Client/Main.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2021 Yee Young Han (http://blog.naver.com/websearch) 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #include "TestHttp2Client.h" 20 | 21 | int main( int argc, char * argv[] ) 22 | { 23 | bool bPrintHelp = false; 24 | 25 | #ifdef WIN32 26 | _CrtSetDbgFlag( _CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF | _CRTDBG_CHECK_ALWAYS_DF ); 27 | #endif 28 | 29 | if( argc >= 2 ) 30 | { 31 | const char * pszCommand = argv[1]; 32 | 33 | if( !strcmp( pszCommand, "get" ) ) 34 | { 35 | TestHttp2ClientGet( argc, argv ); 36 | } 37 | else if( !strcmp( pszCommand, "loop" ) ) 38 | { 39 | TestHttp2ClientLoop( argc, argv ); 40 | } 41 | else 42 | { 43 | bPrintHelp = true; 44 | } 45 | } 46 | else 47 | { 48 | bPrintHelp = true; 49 | } 50 | 51 | if( bPrintHelp ) 52 | { 53 | argc = 1; 54 | 55 | TestHttp2ClientGet( argc, argv ); 56 | TestHttp2ClientLoop( argc, argv ); 57 | } 58 | 59 | #ifdef WIN32 60 | SSLClientStop(); 61 | SSLFinal(); 62 | #endif 63 | 64 | return 0; 65 | } 66 | -------------------------------------------------------------------------------- /TestHttp2Client/Makefile: -------------------------------------------------------------------------------- 1 | # Makefile for TestHttpClient 2 | # 3 | # programmer : yee young han ( websearch@naver.com ) 4 | # : http://blog.naver.com/websearch 5 | # start date : 2016/10/15 6 | 7 | include ../Makefile.mk 8 | 9 | INC=-I../HttpStack -I../TcpStack -I../Http2Parser -I../HttpParser \ 10 | -I../SipPlatform 11 | LIB=-L../HttpStack -lhttpstack \ 12 | -L../TcpStack -ltcpstack \ 13 | -L../Http2Parser -lhttp2parser \ 14 | -L../HttpParser -lhttpparser \ 15 | -L../SipPlatform -lsipplatform \ 16 | $(OPENSSL_LIB) -lpcap -lpthread 17 | 18 | .SUFFIXES: .o .cpp 19 | %.o : %.cpp 20 | $(CC) $(CFLAGS) -c $< $(INC) 21 | 22 | all: TestHttp2Client.exe 23 | 24 | SRV_OBJ=Main.o \ 25 | TestHttp2ClientGet.o TestHttp2ClientLoop.o 26 | 27 | TestHttp2Client.exe: $(SRV_OBJ) 28 | $(CC) $(CFLAGS) -o $@ $(SRV_OBJ) $(INC) $(LIB) 29 | 30 | clean: 31 | rm -f *.exe 32 | rm -f *.o 33 | rm -f core.* 34 | 35 | -------------------------------------------------------------------------------- /TestHttp2Client/ReadMe.md: -------------------------------------------------------------------------------- 1 | # TestHttp2Client 2 | 3 | ### 개요 4 | 5 | * C++ STL 라이브러리를 이용한 HTTP/2 클라이언트 라이브러리 테스트 프로그램 개발 6 | 7 | ### 개발자 정보 8 | 9 | * 이메일 : websearch@naver.com 10 | * 블로그 : http://blog.naver.com/websearch 11 | 12 | ### 라이선스 13 | 14 | * 본 프로젝트의 라이선스는 GPLv3 이고 기업용 라이선스는 websearch@naver.com 으로 문의해 주세요. 15 | -------------------------------------------------------------------------------- /TestHttp2Client/TestHttp2Client.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2021 Yee Young Han (http://blog.naver.com/websearch) 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #ifndef _TEST_HTTP2_CLIENT_H_ 20 | #define _TEST_HTTP2_CLIENT_H_ 21 | 22 | #include "Http2Client.h" 23 | 24 | int TestHttp2ClientGet( int argc, char * argv[] ); 25 | int TestHttp2ClientLoop( int argc, char * argv[] ); 26 | 27 | #endif 28 | -------------------------------------------------------------------------------- /TestHttp2Client/TestHttp2Client.vcproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/TestHttp2Client/TestHttp2Client.vcproj -------------------------------------------------------------------------------- /TestHttp2Client/TestHttp2Client.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | {4FC737F1-C7A5-4376-A066-2A32D752A2FF} 6 | cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx 7 | 8 | 9 | {93995380-89BD-4b04-88EB-625FBE52EBFB} 10 | h;hh;hpp;hxx;hm;inl;inc;xsd 11 | 12 | 13 | {67DA6AB6-F800-4c08-8B7A-83BB121AAD01} 14 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms 15 | 16 | 17 | 18 | 19 | 소스 파일 20 | 21 | 22 | 소스 파일 23 | 24 | 25 | 소스 파일 26 | 27 | 28 | 29 | 30 | 헤더 파일 31 | 32 | 33 | -------------------------------------------------------------------------------- /TestHttpClient/Makefile: -------------------------------------------------------------------------------- 1 | # Makefile for TestHttpClient 2 | # 3 | # programmer : yee young han ( websearch@naver.com ) 4 | # : http://blog.naver.com/websearch 5 | # start date : 2016/10/15 6 | 7 | include ../Makefile.mk 8 | 9 | INC=-I../HttpStack -I../TcpStack -I../HttpParser -I../SipPlatform 10 | LIB=-L../HttpStack -lhttpstack \ 11 | -L../TcpStack -ltcpstack \ 12 | -L../HttpParser -lhttpparser \ 13 | -L../SipPlatform -lsipplatform \ 14 | $(OPENSSL_LIB) -lpthread 15 | 16 | .SUFFIXES: .o .cpp 17 | %.o : %.cpp 18 | $(CC) $(CFLAGS) -c $< $(INC) 19 | 20 | all: TestHttpClient.exe 21 | 22 | SRV_OBJ=Main.o \ 23 | TestHttpClientGet.o TestHttpClientPost.o TestHttpClientSoap.o \ 24 | TestHttpClientUpload.o \ 25 | TestHttpClient2Get.o TestHttpClient2Loop.o 26 | 27 | TestHttpClient.exe: $(SRV_OBJ) 28 | $(CC) $(CFLAGS) -o $@ $(SRV_OBJ) $(INC) $(LIB) 29 | 30 | clean: 31 | rm -f *.exe 32 | rm -f *.o 33 | rm -f core.* 34 | 35 | -------------------------------------------------------------------------------- /TestHttpClient/ReadMe.md: -------------------------------------------------------------------------------- 1 | # TestHttpClient 2 | 3 | ### 개요 4 | 5 | * C++ STL 라이브러리를 이용한 HTTP 클라이언트 라이브러리 테스트 프로그램 개발 6 | 7 | ### 개발자 정보 8 | 9 | * 이메일 : websearch@naver.com 10 | * 블로그 : http://blog.naver.com/websearch 11 | 12 | ### 라이선스 13 | 14 | * 본 프로젝트의 라이선스는 GPLv3 이고 기업용 라이선스는 websearch@naver.com 으로 문의해 주세요. 15 | -------------------------------------------------------------------------------- /TestHttpClient/TestHttpClient.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2012 Yee Young Han (http://blog.naver.com/websearch) 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #ifndef _TEST_HTTP_CLIENT_H_ 20 | #define _TEST_HTTP_CLIENT_H_ 21 | 22 | int TestHttpClient2Get( int argc, char * argv[] ); 23 | int TestHttpClient2Loop( int argc, char * argv[] ); 24 | int TestHttpClientGet( int argc, char * argv[] ); 25 | int TestHttpClientPost( int argc, char * argv[] ); 26 | int TestHttpClientSoap( int argc, char * argv[] ); 27 | int TestHttpClientUpload( int argc, char * argv[] ); 28 | 29 | #endif 30 | -------------------------------------------------------------------------------- /TestHttpClient/TestHttpClient.vcproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/TestHttpClient/TestHttpClient.vcproj -------------------------------------------------------------------------------- /TestHttpClient/TestHttpClient.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | {4FC737F1-C7A5-4376-A066-2A32D752A2FF} 6 | cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx 7 | 8 | 9 | 10 | 11 | 소스 파일 12 | 13 | 14 | 소스 파일 15 | 16 | 17 | 소스 파일 18 | 19 | 20 | 소스 파일 21 | 22 | 23 | 소스 파일 24 | 25 | 26 | 소스 파일 27 | 28 | 29 | 소스 파일 30 | 31 | 32 | -------------------------------------------------------------------------------- /TestHttpClient/TestHttpClient2Get.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2012 Yee Young Han (http://blog.naver.com/websearch) 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #include "HttpClient2.h" 20 | #include "Log.h" 21 | #include "MemoryDebug.h" 22 | 23 | int TestHttpClient2Get( int argc, char * argv[] ) 24 | { 25 | std::string strUrl, strBodyType, strBody; 26 | CHttpClient2 clsClient; 27 | 28 | if( argc >= 3 ) 29 | { 30 | strUrl = argv[2]; 31 | } 32 | 33 | CLog::SetLevel( LOG_DEBUG | LOG_NETWORK ); 34 | 35 | if( clsClient.DoGet( strUrl.c_str(), strBodyType, strBody ) ) 36 | { 37 | printf( "BodyType[%s] BodyLen[%d]\n", strBodyType.c_str(), (int)strBody.length() ); 38 | printf( "%s", strBody.c_str() ); 39 | } 40 | else 41 | { 42 | printf( "clsClient.DoGet error\n" ); 43 | } 44 | 45 | return 0; 46 | } 47 | -------------------------------------------------------------------------------- /TestHttpClient/TestHttpClientGet.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2012 Yee Young Han (http://blog.naver.com/websearch) 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #include "HttpClient.h" 20 | #include "Log.h" 21 | #include "MemoryDebug.h" 22 | 23 | int TestHttpClientGet( int argc, char * argv[] ) 24 | { 25 | std::string strUrl, strBodyType, strBody; 26 | CHttpClient clsClient; 27 | 28 | if( argc >= 3 ) 29 | { 30 | strUrl = argv[2]; 31 | } 32 | else if( argc == 2 ) 33 | { 34 | strUrl = argv[1]; 35 | } 36 | 37 | CLog::SetLevel( LOG_DEBUG | LOG_NETWORK ); 38 | 39 | if( clsClient.DoGet( strUrl.c_str(), strBodyType, strBody ) ) 40 | { 41 | printf( "BodyType[%s] BodyLen[%d]\n", strBodyType.c_str(), (int)strBody.length() ); 42 | printf( "%s", strBody.c_str() ); 43 | } 44 | else 45 | { 46 | printf( "clsClient.DoGet error\n" ); 47 | } 48 | 49 | return 0; 50 | } 51 | -------------------------------------------------------------------------------- /TestHttpClient/TestHttpClientUpload.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2012 Yee Young Han (http://blog.naver.com/websearch) 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #include "HttpClient.h" 20 | #include "Log.h" 21 | #include "MemoryDebug.h" 22 | 23 | int TestHttpClientUpload( int argc, char * argv[] ) 24 | { 25 | std::string strSendBody, strRecvBodyType, strRecvBody; 26 | CHttpClient clsClient; 27 | 28 | CLog::SetLevel( LOG_DEBUG | LOG_NETWORK ); 29 | 30 | POST_NAME_VALUE_MAP clsPostNameValueMap; 31 | 32 | clsPostNameValueMap.insert( POST_NAME_VALUE_MAP::value_type( "id", "userid" ) ); 33 | clsPostNameValueMap.insert( POST_NAME_VALUE_MAP::value_type( "pw", "password" ) ); 34 | 35 | if( clsClient.DoUpload( "http://127.0.0.1:8080/board/file_upload", "C:\\Temp\\test\\IE.LOG", "file", clsPostNameValueMap, strRecvBodyType, strRecvBody ) ) 36 | { 37 | printf( "[%s]\n", strRecvBody.c_str() ); 38 | } 39 | else 40 | { 41 | printf( "clsClient.DoUpload error\n" ); 42 | } 43 | 44 | return 0; 45 | } 46 | -------------------------------------------------------------------------------- /TestHttpParser/Makefile: -------------------------------------------------------------------------------- 1 | # Makefile for TestHttpParser 2 | # 3 | # programmer : yee young han ( websearch@naver.com ) 4 | # : http://blog.naver.com/websearch 5 | # start date : 2016/10/15 6 | 7 | include ../Makefile.mk 8 | 9 | INC=-I../Http2Parser -I../HttpParser -I../SipPlatform 10 | LIB=-L../Http2Parser -lhttp2parser \ 11 | -L../HttpParser -lhttpparser \ 12 | -L../SipPlatform -lsipplatform \ 13 | -lpthread 14 | 15 | .SUFFIXES: .o .cpp 16 | %.o : %.cpp 17 | $(CC) $(CFLAGS) -c $< $(INC) 18 | 19 | all: TestHttpParser.exe 20 | 21 | SRV_OBJ=Main.o \ 22 | TestHttpPacket.o TestHttpParameter.o TestHttpMultipart.o \ 23 | TestHttpSetCookie.o \ 24 | TestHttp2Conversion.o TestHttp2Header.o TestHttp2HuffmanCode.o \ 25 | 26 | TestHttpParser.exe: $(SRV_OBJ) 27 | $(CC) $(CFLAGS) -o $@ $(SRV_OBJ) $(INC) $(LIB) 28 | 29 | clean: 30 | rm -f *.exe 31 | rm -f *.o 32 | rm -f core.* 33 | 34 | -------------------------------------------------------------------------------- /TestHttpParser/ReadMe.md: -------------------------------------------------------------------------------- 1 | # TestHttpParser 2 | 3 | ### 개요 4 | 5 | * C++ STL 라이브러리를 이용한 HTTP 프로토콜 파서 테스트 프로그램 개발 6 | 7 | ### 개발자 정보 8 | 9 | * 이메일 : websearch@naver.com 10 | * 블로그 : http://blog.naver.com/websearch 11 | 12 | ### 라이선스 13 | 14 | * 본 프로젝트의 라이선스는 GPLv3 이고 기업용 라이선스는 websearch@naver.com 으로 문의해 주세요. 15 | -------------------------------------------------------------------------------- /TestHttpParser/TestHttp2Header.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2012 Yee Young Han (http://blog.naver.com/websearch) 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #include "SipPlatformDefine.h" 20 | #include "Http2Header.h" 21 | #include "StringUtility.h" 22 | #include "MemoryDebug.h" 23 | 24 | bool TestHttp2Header( uint32_t iIndex, const char * pszValue, const char * pszPacket ) 25 | { 26 | CHttp2Header clsHeader; 27 | std::string strHex; 28 | 29 | if( clsHeader.AddIndexValue( iIndex, pszValue ) == false ) 30 | { 31 | printf( "clsHeader.AddIndexValue error\n" ); 32 | return false; 33 | } 34 | 35 | StringToHex( (char *)clsHeader.m_pszPacket, clsHeader.m_iPacketLen, strHex ); 36 | 37 | if( strcmp( pszPacket, strHex.c_str() ) ) 38 | { 39 | printf( "error\n" ); 40 | return false; 41 | } 42 | 43 | return true; 44 | } 45 | 46 | bool TestHttp2Header() 47 | { 48 | if( TestHttp2Header( 33, "1234", "0f120431323334" ) == false ) return false; 49 | 50 | return true; 51 | } -------------------------------------------------------------------------------- /TestHttpParser/TestHttpPacket.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/TestHttpParser/TestHttpPacket.cpp -------------------------------------------------------------------------------- /TestHttpParser/TestHttpParser.vcproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/TestHttpParser/TestHttpParser.vcproj -------------------------------------------------------------------------------- /TestHttpParser/TestHttpParser.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | {4FC737F1-C7A5-4376-A066-2A32D752A2FF} 6 | cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx 7 | 8 | 9 | 10 | 11 | 소스 파일 12 | 13 | 14 | 소스 파일 15 | 16 | 17 | 소스 파일 18 | 19 | 20 | 소스 파일 21 | 22 | 23 | 소스 파일 24 | 25 | 26 | 소스 파일 27 | 28 | 29 | 소스 파일 30 | 31 | 32 | 소스 파일 33 | 34 | 35 | -------------------------------------------------------------------------------- /TestHttpStack/Main.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/TestHttpStack/Main.cpp -------------------------------------------------------------------------------- /TestHttpStack/Makefile: -------------------------------------------------------------------------------- 1 | # Makefile for TestHttpStack 2 | # 3 | # programmer : yee young han ( websearch@naver.com ) 4 | # : http://blog.naver.com/websearch 5 | # start date : 2016/10/15 6 | 7 | include ../Makefile.mk 8 | 9 | INC=-I../HttpStack -I../TcpStack -I../Http2Parser -I../HttpParser \ 10 | -I../XmlParser -I../SipPlatform 11 | LIB=-L../HttpStack -lhttpstack \ 12 | -L../TcpStack -ltcpstack \ 13 | -L../Http2Parser -lhttp2parser \ 14 | -L../HttpParser -lhttpparser \ 15 | -L../XmlParser -lxmlparser \ 16 | -L../SipPlatform -lsipplatform \ 17 | $(OPENSSL_LIB) -lpthread 18 | 19 | .SUFFIXES: .o .cpp 20 | %.o : %.cpp 21 | $(CC) $(CFLAGS) -c $< $(INC) 22 | 23 | all: TestHttpStack.exe 24 | 25 | SRV_OBJ=Main.o \ 26 | SimpleHttpServer.o 27 | 28 | TestHttpStack.exe: $(SRV_OBJ) 29 | $(CC) $(CFLAGS) -o $@ $(SRV_OBJ) $(INC) $(LIB) 30 | 31 | clean: 32 | rm -f *.exe 33 | rm -f *.o 34 | rm -f core.* 35 | 36 | -------------------------------------------------------------------------------- /TestHttpStack/ReadMe.md: -------------------------------------------------------------------------------- 1 | # TestHttpStack 프로그램 2 | 3 | ### 개요 4 | 5 | * HttpStack 라이브러리를 이용한 HTTP 서버 개발 6 | * HttpStack 라이브러리를 이용한 WebSocket echo 서버 개발 7 | 8 | ### 개발자 정보 9 | 10 | * 이메일 : websearch@naver.com 11 | * 블로그 : http://blog.naver.com/websearch 12 | 13 | ### 라이선스 14 | 15 | * 본 프로젝트의 라이선스는 GPLv3 이고 기업용 라이선스는 websearch@naver.com 으로 문의해 주세요. 16 | 17 | ### 실행 방법 18 | HTTP/1.1 프로토콜만 사용할 경우, TestHttpStack.exe 프로그램은 Document root 폴더를 인자로 아래와 같이 실행하면 됩니다. 19 | 20 | ``` 21 | # TestHttpStack.exe {Document root} 22 | ``` 23 | 24 | HTTP/2 프로토콜을 사용할 경우, TestHttpStack.exe 프로그램은 Document root 폴더 및 인증서 파일 인자로 아래와 같이 실행하면 됩니다. 25 | 26 | ``` 27 | # TestHttpStack.exe {Document root} {pem file} 28 | ``` 29 | 30 | ### WebSocket echo 테스트 방법 31 | 32 | * TestHttpStack.exe 를 실행한 호스트에서 본 폴더에 존재하는 WebSocketEchoClient.html 를 브라우저로 실행하면 WebSocket echo 테스트를 하실 수 있습니다. 33 | 34 | -------------------------------------------------------------------------------- /TestHttpStack/SimpleHttpServer.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/TestHttpStack/SimpleHttpServer.cpp -------------------------------------------------------------------------------- /TestHttpStack/SimpleHttpServer.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/TestHttpStack/SimpleHttpServer.h -------------------------------------------------------------------------------- /TestHttpStack/TestHttpStack.vcproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/TestHttpStack/TestHttpStack.vcproj -------------------------------------------------------------------------------- /TestHttpStack/TestHttpStack.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | {4FC737F1-C7A5-4376-A066-2A32D752A2FF} 6 | cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx 7 | 8 | 9 | 10 | 11 | 소스 파일 12 | 13 | 14 | 소스 파일 15 | 16 | 17 | 18 | 19 | 소스 파일 20 | 21 | 22 | -------------------------------------------------------------------------------- /TestHttpStack/TestHttpStack.vcxproj.user: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | -------------------------------------------------------------------------------- /TestHttpStack/WebSocketEchoClient.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 40 | 41 | 42 | 43 |
44 | 45 | 46 |
47 | 48 |
49 | 50 |
51 | 52 | -------------------------------------------------------------------------------- /TestHttpStackMfc/ReadMe.md: -------------------------------------------------------------------------------- 1 | # TestHttpStackMFC 프로그램 2 | 3 | ### 개요 4 | 5 | * HttpStack 라이브러리를 이용한 HTTP 서버 개발 6 | * MFC 기반 빌드 환경 예제 제 7 | 8 | ### 개발자 정보 9 | 10 | * 이메일 : websearch@naver.com 11 | * 블로그 : http://blog.naver.com/websearch 12 | 13 | ### 라이선스 14 | 15 | * 본 프로젝트의 라이선스는 GPLv3 이고 기업용 라이선스는 websearch@naver.com 으로 문의해 주세요. 16 | 17 | ### 주의사 18 | 19 | * TestHttpStackMfcDlg.cpp 소스 코드의 아래의 라인을 운영할 웹서버의 root 폴더로 수정한 후, 빌드해 주세요. 20 | 21 | ''' 22 | // HTTP 서버에서 사용할 Document root 폴더를 설정한다. 23 | m_clsServer.m_strDocumentRoot = "C:\\OpenProject\\CppHttpStack\\trunk\\doc"; 24 | ''' 25 | -------------------------------------------------------------------------------- /TestHttpStackMfc/SimpleHttpServer.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/TestHttpStackMfc/SimpleHttpServer.cpp -------------------------------------------------------------------------------- /TestHttpStackMfc/SimpleHttpServer.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/TestHttpStackMfc/SimpleHttpServer.h -------------------------------------------------------------------------------- /TestHttpStackMfc/TestHttpStackMfc.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/TestHttpStackMfc/TestHttpStackMfc.cpp -------------------------------------------------------------------------------- /TestHttpStackMfc/TestHttpStackMfc.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/TestHttpStackMfc/TestHttpStackMfc.h -------------------------------------------------------------------------------- /TestHttpStackMfc/TestHttpStackMfc.rc: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/TestHttpStackMfc/TestHttpStackMfc.rc -------------------------------------------------------------------------------- /TestHttpStackMfc/TestHttpStackMfc.vcxproj.user: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | TestHttpStackMfc.rc 5 | 6 | -------------------------------------------------------------------------------- /TestHttpStackMfc/TestHttpStackMfcDlg.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/TestHttpStackMfc/TestHttpStackMfcDlg.cpp -------------------------------------------------------------------------------- /TestHttpStackMfc/TestHttpStackMfcDlg.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/TestHttpStackMfc/TestHttpStackMfcDlg.h -------------------------------------------------------------------------------- /TestHttpStackMfc/res/TestHttpStackMfc.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/TestHttpStackMfc/res/TestHttpStackMfc.ico -------------------------------------------------------------------------------- /TestHttpStackMfc/res/TestHttpStackMfc.rc2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/TestHttpStackMfc/res/TestHttpStackMfc.rc2 -------------------------------------------------------------------------------- /TestHttpStackMfc/res/Toolbar.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/TestHttpStackMfc/res/Toolbar.bmp -------------------------------------------------------------------------------- /TestHttpStackMfc/res/Toolbar256.bmp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/TestHttpStackMfc/res/Toolbar256.bmp -------------------------------------------------------------------------------- /TestHttpStackMfc/resource.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/TestHttpStackMfc/resource.h -------------------------------------------------------------------------------- /TestHttpStackMfc/stdafx.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/TestHttpStackMfc/stdafx.cpp -------------------------------------------------------------------------------- /TestHttpStackMfc/stdafx.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/TestHttpStackMfc/stdafx.h -------------------------------------------------------------------------------- /TestHttpStackMfc/targetver.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/TestHttpStackMfc/targetver.h -------------------------------------------------------------------------------- /TestJsonParser/Main.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2012 Yee Young Han (http://blog.naver.com/websearch) 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #include "SipPlatformDefine.h" 20 | #include 21 | #include "Main.h" 22 | 23 | int main( int argc, char * argv[] ) 24 | { 25 | #ifdef _DEBUG 26 | _CrtSetDbgFlag( _CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF | _CRTDBG_CHECK_ALWAYS_DF ); 27 | #endif 28 | 29 | bool bRes = false; 30 | 31 | if( argc > 1 ) 32 | { 33 | SampleJsonObject(); 34 | SampleJsonArray(); 35 | } 36 | 37 | if( TestJsonObjectNewLine() == false ) goto FUNC_END; 38 | if( TestJsonObject() == false ) goto FUNC_END; 39 | if( TestJsonArray() == false ) goto FUNC_END; 40 | 41 | bRes = true; 42 | 43 | FUNC_END: 44 | 45 | if( bRes == false ) 46 | { 47 | printf( "ERROR!!!\n" ); 48 | } 49 | else 50 | { 51 | printf( "ALL PASS!!!\n" ); 52 | } 53 | 54 | return 0; 55 | } 56 | -------------------------------------------------------------------------------- /TestJsonParser/Main.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2012 Yee Young Han (http://blog.naver.com/websearch) 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #ifndef _MAIN_H_ 20 | #define _MAIN_H_ 21 | 22 | #define Check(x) if( !(x) ){ printf( "%s %d error\n", __FILE__, __LINE__ ); return false; } 23 | 24 | bool TestJsonObject(); 25 | bool TestJsonObjectNewLine( ); 26 | bool TestJsonArray(); 27 | void SampleJsonObject(); 28 | void SampleJsonArray(); 29 | 30 | #endif 31 | -------------------------------------------------------------------------------- /TestJsonParser/Makefile: -------------------------------------------------------------------------------- 1 | # Makefile for TestJsonParser 2 | # 3 | # programmer : yee young han ( websearch@naver.com ) 4 | # : http://blog.naver.com/websearch 5 | # start date : 2016/11/09 6 | 7 | include ../Makefile.mk 8 | 9 | INC=-I../JsonParser -I../SipPlatform 10 | LIB=-L../JsonParser -ljsonparser \ 11 | -L../SipPlatform -lsipplatform \ 12 | -lpthread 13 | 14 | .SUFFIXES: .o .cpp 15 | %.o : %.cpp 16 | $(CC) $(CFLAGS) -c $< $(INC) 17 | 18 | all: TestJsonParser.exe 19 | 20 | SRV_OBJ=Main.o \ 21 | TestJsonObject.o TestJsonArray.o \ 22 | TestJsonObjectNewLine.o \ 23 | SampleJsonObject.o SampleJsonArray.o 24 | 25 | TestJsonParser.exe: $(SRV_OBJ) 26 | $(CC) $(CFLAGS) -o $@ $(SRV_OBJ) $(INC) $(LIB) 27 | 28 | clean: 29 | rm -f *.exe 30 | rm -f *.o 31 | rm -f core.* 32 | 33 | -------------------------------------------------------------------------------- /TestJsonParser/ReadMe.md: -------------------------------------------------------------------------------- 1 | # TestJsonParser 프로그램 2 | 3 | ### 개요 4 | 5 | * JsonParser 라이브러리 테스트 프로그램 개발 6 | 7 | ### 개발자 정보 8 | 9 | * 이메일 : websearch@naver.com 10 | * 블로그 : http://blog.naver.com/websearch 11 | 12 | ### 라이선스 13 | 14 | * 본 프로젝트의 라이선스는 GPLv3 이고 기업용 라이선스는 websearch@naver.com 으로 문의해 주세요. 15 | -------------------------------------------------------------------------------- /TestJsonParser/SampleJsonArray.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/TestJsonParser/SampleJsonArray.cpp -------------------------------------------------------------------------------- /TestJsonParser/SampleJsonObject.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/TestJsonParser/SampleJsonObject.cpp -------------------------------------------------------------------------------- /TestJsonParser/TestJsonParser.vcproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/TestJsonParser/TestJsonParser.vcproj -------------------------------------------------------------------------------- /TestJsonParser/TestJsonParser.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | {4FC737F1-C7A5-4376-A066-2A32D752A2FF} 6 | cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx 7 | 8 | 9 | 10 | 11 | 소스 파일 12 | 13 | 14 | 소스 파일 15 | 16 | 17 | 소스 파일 18 | 19 | 20 | 소스 파일 21 | 22 | 23 | 소스 파일 24 | 25 | 26 | 소스 파일 27 | 28 | 29 | 30 | 31 | 소스 파일 32 | 33 | 34 | -------------------------------------------------------------------------------- /TestJsonServer/JsonServer.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/TestJsonServer/JsonServer.cpp -------------------------------------------------------------------------------- /TestJsonServer/JsonServer.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/TestJsonServer/JsonServer.h -------------------------------------------------------------------------------- /TestJsonServer/Main.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/TestJsonServer/Main.cpp -------------------------------------------------------------------------------- /TestJsonServer/Makefile: -------------------------------------------------------------------------------- 1 | # Makefile for TestJsonServer 2 | # 3 | # programmer : yee young han ( websearch@naver.com ) 4 | # : http://blog.naver.com/websearch 5 | # start date : 2019/04/04 6 | 7 | include ../Makefile.mk 8 | 9 | INC=-I../HttpStack -I../TcpStack -I../Http2Parser -I../HttpParser \ 10 | -I../XmlParser -I../SipPlatform 11 | LIB=-L../HttpStack -lhttpstack \ 12 | -L../TcpStack -ltcpstack \ 13 | -L../Http2Parser -lhttp2parser \ 14 | -L../HttpParser -lhttpparser \ 15 | -L../XmlParser -lxmlparser \ 16 | -L../SipPlatform -lsipplatform \ 17 | $(OPENSSL_LIB) -lpthread 18 | 19 | .SUFFIXES: .o .cpp 20 | %.o : %.cpp 21 | $(CC) $(CFLAGS) -c $< $(INC) 22 | 23 | all: TestJsonServer.exe 24 | 25 | SRV_OBJ=Main.o JsonServer.o Setup.o 26 | 27 | TestJsonServer.exe: $(SRV_OBJ) 28 | $(CC) $(CFLAGS) -o $@ $(SRV_OBJ) $(INC) $(LIB) 29 | 30 | clean: 31 | rm -f *.exe 32 | rm -f *.o 33 | rm -f core.* 34 | 35 | -------------------------------------------------------------------------------- /TestJsonServer/ReadMe.md: -------------------------------------------------------------------------------- 1 | # TestJsonServer 프로그램 2 | 3 | ### 개요 4 | 5 | * HttpStack 라이브러리를 이용한 Json 응답 서버 개발 6 | * Json 요청에 대한 응답을 수신하는 앱을 개발할 때에 Json 요청에 대한 응답을 시뮬레이션할 수 있습니다. 7 | 8 | ### 개발자 정보 9 | 10 | * 이메일 : websearch@naver.com 11 | * 블로그 : http://blog.naver.com/websearch 12 | 13 | ### 라이선스 14 | 15 | * 본 프로젝트의 라이선스는 GPLv3 이고 기업용 라이선스는 websearch@naver.com 으로 문의해 주세요. 16 | 17 | ### 실행 방법 18 | TestJsonServer.exe 프로그램은 설정 파일을 인자로 아래와 같이 실행하면 됩니다. 19 | 20 | ``` 21 | # TestJsonServer.exe TestJsonServer.xml 22 | ``` 23 | 24 | ### 설정 파일 예제 25 | 설정 파일에는 요청 URI 에 대한 응답을 전송할 json 파일 full path 를 아래와 같이 저장하면 됩니다. 26 | 27 | ``` 28 | 29 | 30 | 31 | /test 32 | c:\temp\test.json 33 | 34 | 35 | 36 | ``` 37 | -------------------------------------------------------------------------------- /TestJsonServer/Setup.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/TestJsonServer/Setup.cpp -------------------------------------------------------------------------------- /TestJsonServer/Setup.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/TestJsonServer/Setup.h -------------------------------------------------------------------------------- /TestJsonServer/TestJsonServer.vcproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/TestJsonServer/TestJsonServer.vcproj -------------------------------------------------------------------------------- /TestJsonServer/TestJsonServer.xml: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | /test 5 | c:\temp\test.json 6 | 7 | 8 | -------------------------------------------------------------------------------- /TestLunar/TestLunar.vcproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/TestLunar/TestLunar.vcproj -------------------------------------------------------------------------------- /TestNaverCafeSearch/TestNaverCafeSearch.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/TestNaverCafeSearch/TestNaverCafeSearch.cpp -------------------------------------------------------------------------------- /TestNaverCafeSearch/TestNaverCafeSearch.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2012 Yee Young Han (http://blog.naver.com/websearch) 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #ifndef _TEST_NAVER_CAFE_SEARCH_H_ 20 | #define _TEST_NAVER_CAFE_SEARCH_H_ 21 | 22 | #include "HttpClient.h" 23 | #include "HtmlSearch.h" 24 | #include "StringUtility.h" 25 | #include "Log.h" 26 | #include "MemoryDebug.h" 27 | 28 | #endif 29 | -------------------------------------------------------------------------------- /TestNaverCafeSearch/TestNaverCafeSearch.vcproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/TestNaverCafeSearch/TestNaverCafeSearch.vcproj -------------------------------------------------------------------------------- /TestSipPlatform/TestSipPlatform.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2012 Yee Young Han (http://blog.naver.com/websearch) 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #include "TestSipPlatform.h" 20 | 21 | int main( int argc, char * argv[] ) 22 | { 23 | if( TestTimeString() == false || TestStringUtility() == false ) 24 | { 25 | printf( "ERROR\n" ); 26 | } 27 | else 28 | { 29 | printf( "OK\n" ); 30 | } 31 | 32 | return 0; 33 | } 34 | -------------------------------------------------------------------------------- /TestSipPlatform/TestSipPlatform.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2012 Yee Young Han (http://blog.naver.com/websearch) 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #ifndef _TEST_SIP_PLATFORM_H_ 20 | #define _TEST_SIP_PLATFORM_H_ 21 | 22 | #include 23 | 24 | bool TestStringUtility(); 25 | bool TestTimeString(); 26 | 27 | #endif 28 | -------------------------------------------------------------------------------- /TestSipPlatform/TestSipPlatform.vcproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/TestSipPlatform/TestSipPlatform.vcproj -------------------------------------------------------------------------------- /TestSipPlatform/TestStringUtility.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2012 Yee Young Han (http://blog.naver.com/websearch) 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #include "TestSipPlatform.h" 20 | #include "StringUtility.h" 21 | 22 | bool TestStringUtility() 23 | { 24 | std::string strInput, strOutput; 25 | 26 | strInput = "%23%3B%2F%3F%3A%40%26%3D%2B%24%2C-_.!~*'()"; 27 | 28 | DecodeUri( strInput, strOutput ); 29 | 30 | if( strcmp( strOutput.c_str(), "#;/?:@&=+$,-_.!~*'()" ) ) 31 | { 32 | printf( "output(%s) != \"#;/?:@&=+$,-_.!~*'()\"\n" ); 33 | return false; 34 | } 35 | 36 | return true; 37 | } 38 | -------------------------------------------------------------------------------- /TestSipPlatform/TestTimeString.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2021 Yee Young Han (http://blog.naver.com/websearch) 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #include "TestSipPlatform.h" 20 | #include "TimeString.h" 21 | #include 22 | 23 | bool TestCookieExpires( const char * pszCookieExpires, const char * pszTime ) 24 | { 25 | char szTime[21]; 26 | time_t iTime = ParseCookieExpires( pszCookieExpires ); 27 | 28 | GetDateTimeString( iTime, szTime, sizeof(szTime) ); 29 | 30 | if( strcmp( pszTime, szTime ) ) 31 | { 32 | printf( "%s(%s,%s) error - szTime(%s)\n", __FUNCTION__, pszCookieExpires, pszTime, szTime ); 33 | return false; 34 | } 35 | 36 | return true; 37 | } 38 | 39 | 40 | bool TestTimeString() 41 | { 42 | if( TestCookieExpires( "Wed, 22-Jun-2022 05:04:13 GMT", "20220622140413" ) == false ) return false; 43 | 44 | return true; 45 | } 46 | -------------------------------------------------------------------------------- /TestTcpStack/ReadMe.md: -------------------------------------------------------------------------------- 1 | # TestTcpStack 프로그램 2 | 3 | ### 개요 4 | 5 | * TcpStack 라이브러리 테스트 프로그램 개발 6 | 7 | ### 개발자 정보 8 | 9 | * 이메일 : websearch@naver.com 10 | * 블로그 : http://blog.naver.com/websearch 11 | 12 | ### 라이선스 13 | 14 | * 본 프로젝트의 라이선스는 GPLv3 이고 기업용 라이선스는 websearch@naver.com 으로 문의해 주세요. 15 | -------------------------------------------------------------------------------- /TestTcpStack/ServerCallBack.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2012 Yee Young Han (http://blog.naver.com/websearch) 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #include "TestTcpStack.h" 20 | 21 | CServerCallBack gclsServerCallBack; 22 | 23 | CServerCallBack::CServerCallBack() 24 | { 25 | } 26 | 27 | CServerCallBack::~CServerCallBack() 28 | { 29 | } 30 | 31 | bool CServerCallBack::InComingConnected( CTcpSessionInfo * pclsSessionInfo ) 32 | { 33 | return true; 34 | } 35 | 36 | void CServerCallBack::SessionClosed( CTcpSessionInfo * pclsSessionInfo ) 37 | { 38 | 39 | } 40 | 41 | bool CServerCallBack::RecvPacket( char * pszPacket, int iPacketLen, CTcpSessionInfo * pclsSessionInfo ) 42 | { 43 | gclsServer.SendAll( pszPacket, iPacketLen ); 44 | //gclsServer.SendAllExcept( pszPacket, iPacketLen, pclsSessionInfo->m_iThreadIndex, pclsSessionInfo->m_iSessionIndex ); 45 | 46 | return true; 47 | } 48 | 49 | bool CServerCallBack::IsSendAll( CTcpSessionInfo * pclsSessionInfo ) 50 | { 51 | //if( pclsSessionInfo->m_iSessionIndex % 2 == 0 ) return false; 52 | 53 | return true; 54 | } 55 | -------------------------------------------------------------------------------- /TestTcpStack/ServerCallBack.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2012 Yee Young Han (http://blog.naver.com/websearch) 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #ifndef _SERVER_CALL_BACK_H_ 20 | #define _SERVER_CALL_BACK_H_ 21 | 22 | #include "TcpStackCallBack.h" 23 | 24 | class CServerCallBack : public ITcpStackCallBack 25 | { 26 | public: 27 | CServerCallBack(); 28 | virtual ~CServerCallBack(); 29 | 30 | virtual bool InComingConnected( CTcpSessionInfo * pclsSessionInfo ); 31 | virtual void SessionClosed( CTcpSessionInfo * pclsSessionInfo ); 32 | virtual bool RecvPacket( char * pszPacket, int iPacketLen, CTcpSessionInfo * pclsSessionInfo ); 33 | virtual bool IsSendAll( CTcpSessionInfo * pclsSessionInfo ); 34 | }; 35 | 36 | extern CServerCallBack gclsServerCallBack; 37 | 38 | #endif 39 | -------------------------------------------------------------------------------- /TestTcpStack/TestTcpStack.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2012 Yee Young Han (http://blog.naver.com/websearch) 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #ifndef _TEST_TCP_STACK_H_ 20 | #define _TEST_TCP_STACK_H_ 21 | 22 | #include "TcpStack.h" 23 | #include "ServerCallBack.h" 24 | 25 | #define TCP_PORT 9100 26 | 27 | extern CTcpStack gclsServer; 28 | 29 | bool StartClientThread( ); 30 | 31 | #endif 32 | -------------------------------------------------------------------------------- /TestTcpStack/TestTcpStack.vcproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/TestTcpStack/TestTcpStack.vcproj -------------------------------------------------------------------------------- /TestTcpStack/TestTcpStack.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | {4FC737F1-C7A5-4376-A066-2A32D752A2FF} 6 | cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx 7 | 8 | 9 | 10 | 11 | 소스 파일 12 | 13 | 14 | 소스 파일 15 | 16 | 17 | 소스 파일 18 | 19 | 20 | 21 | 22 | 소스 파일 23 | 24 | 25 | 소스 파일 26 | 27 | 28 | -------------------------------------------------------------------------------- /TestTimbelSTT/TestTimbelSTT.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/TestTimbelSTT/TestTimbelSTT.cpp -------------------------------------------------------------------------------- /TestTimbelSTT/TestTimbelSTT.vcproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/TestTimbelSTT/TestTimbelSTT.vcproj -------------------------------------------------------------------------------- /TestWebRtc/CallMap.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/TestWebRtc/CallMap.cpp -------------------------------------------------------------------------------- /TestWebRtc/CallMap.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/TestWebRtc/CallMap.h -------------------------------------------------------------------------------- /TestWebRtc/Main.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/TestWebRtc/Main.cpp -------------------------------------------------------------------------------- /TestWebRtc/Makefile: -------------------------------------------------------------------------------- 1 | # Makefile for TestWebRtc 2 | # 3 | # programmer : yee young han ( websearch@naver.com ) 4 | # : http://blog.naver.com/websearch 5 | # start date : 2017/11/16 6 | 7 | include ../Makefile.mk 8 | 9 | INC=-I../HttpStack -I../TcpStack -I../Http2Parser -I../HttpParser \ 10 | -I../XmlParser -I../SipPlatform 11 | LIB=-L../HttpStack -lhttpstack \ 12 | -L../TcpStack -ltcpstack \ 13 | -L../Http2Parser -lhttp2parser \ 14 | -L../HttpParser -lhttpparser \ 15 | -L../XmlParser -lxmlparser \ 16 | -L../SipPlatform -lsipplatform \ 17 | $(OPENSSL_LIB) -lpthread 18 | 19 | .SUFFIXES: .o .cpp 20 | %.o : %.cpp 21 | $(CC) $(CFLAGS) -c $< $(INC) 22 | 23 | all: TestWebRtc.exe 24 | 25 | SRV_OBJ=Main.o \ 26 | WebRtcServer.o \ 27 | UserMap.o CallMap.o 28 | 29 | TestWebRtc.exe: $(SRV_OBJ) 30 | $(CC) $(CFLAGS) -o $@ $(SRV_OBJ) $(INC) $(LIB) 31 | 32 | clean: 33 | rm -f *.exe 34 | rm -f *.o 35 | rm -f core.* 36 | 37 | -------------------------------------------------------------------------------- /TestWebRtc/ReadMe.md: -------------------------------------------------------------------------------- 1 | # TestWebRtc 프로그램 2 | 3 | ### 개요 4 | 5 | * WebSocket 으로 WebRTC 통신을 위한 session 시작/종료시키는 명령 처리 서버 프로그램 개발 6 | 7 | ### 개발자 정보 8 | 9 | * 이메일 : websearch@naver.com 10 | * 블로그 : http://blog.naver.com/websearch 11 | 12 | ### 라이선스 13 | 14 | * 본 프로젝트의 라이선스는 GPLv3 이고 기업용 라이선스는 websearch@naver.com 으로 문의해 주세요. 15 | 16 | ### 실행 방법 17 | TestWebRtc.exe 프로그램은 TestWebRtc 폴더의 html 폴더를 document root 로 설정하여 실행하면 됩니다. 18 | 19 | ``` 20 | # TestHttpStack.exe C:\OpenProject\CppHttpStack\trunk\TestWebRtc\html 21 | ``` 22 | 23 | 테스트 방법은 http://blog.naver.com/websearch/221142356741 포스트를 참고하세요. 24 | 25 | ### 관련 포스트 26 | 27 | * https://blog.naver.com/websearch/221142356741 : WebRTC 테스트 프로그램 개발 완료 28 | 29 | -------------------------------------------------------------------------------- /TestWebRtc/TestWebRtc.vcproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/TestWebRtc/TestWebRtc.vcproj -------------------------------------------------------------------------------- /TestWebRtc/TestWebRtc.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | {4FC737F1-C7A5-4376-A066-2A32D752A2FF} 6 | cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx 7 | 8 | 9 | {456e8611-2618-4e92-91ac-2336e5283468} 10 | 11 | 12 | 13 | 14 | 소스 파일 15 | 16 | 17 | 소스 파일 18 | 19 | 20 | 자료구조 21 | 22 | 23 | 자료구조 24 | 25 | 26 | 27 | 28 | 소스 파일 29 | 30 | 31 | 자료구조 32 | 33 | 34 | 자료구조 35 | 36 | 37 | -------------------------------------------------------------------------------- /TestWebRtc/UserMap.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/TestWebRtc/UserMap.cpp -------------------------------------------------------------------------------- /TestWebRtc/UserMap.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/TestWebRtc/UserMap.h -------------------------------------------------------------------------------- /TestWebRtc/WebRtcServer.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/TestWebRtc/WebRtcServer.cpp -------------------------------------------------------------------------------- /TestWebRtc/WebRtcServer.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/TestWebRtc/WebRtcServer.h -------------------------------------------------------------------------------- /TestWebRtc/html/index.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | WebRTC 7 | 8 | 9 |
10 | user id : 11 | 12 |
13 |
14 | peer id : 15 | 16 | 17 | 18 | 19 | 20 |
21 | 22 | 23 | 24 | 27 | 30 | 31 | 32 | 35 | 38 | 39 |
25 | Local video 26 | 28 | 'Remote' video 29 |
33 | 34 | 36 | 37 |
40 | 41 |
42 | 43 |
44 | 45 | 46 | 47 | 48 | 49 | 50 | -------------------------------------------------------------------------------- /TestWebService/Readme.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/TestWebService/Readme.md -------------------------------------------------------------------------------- /TestWebService/WebService1/WebService1.sln: -------------------------------------------------------------------------------- 1 |  2 | Microsoft Visual Studio Solution File, Format Version 10.00 3 | # Visual Studio 2008 4 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "WebService1", "WebService1\WebService1.csproj", "{FCE4E156-C405-4CAF-A876-3B0914F55F4D}" 5 | EndProject 6 | Global 7 | GlobalSection(SolutionConfigurationPlatforms) = preSolution 8 | Debug|Any CPU = Debug|Any CPU 9 | Release|Any CPU = Release|Any CPU 10 | EndGlobalSection 11 | GlobalSection(ProjectConfigurationPlatforms) = postSolution 12 | {FCE4E156-C405-4CAF-A876-3B0914F55F4D}.Debug|Any CPU.ActiveCfg = Debug|Any CPU 13 | {FCE4E156-C405-4CAF-A876-3B0914F55F4D}.Debug|Any CPU.Build.0 = Debug|Any CPU 14 | {FCE4E156-C405-4CAF-A876-3B0914F55F4D}.Release|Any CPU.ActiveCfg = Release|Any CPU 15 | {FCE4E156-C405-4CAF-A876-3B0914F55F4D}.Release|Any CPU.Build.0 = Release|Any CPU 16 | EndGlobalSection 17 | GlobalSection(SolutionProperties) = preSolution 18 | HideSolutionNode = FALSE 19 | EndGlobalSection 20 | EndGlobal 21 | -------------------------------------------------------------------------------- /TestWebService/WebService1/WebService1/Properties/AssemblyInfo.cs: -------------------------------------------------------------------------------- 1 | using System.Reflection; 2 | using System.Runtime.CompilerServices; 3 | using System.Runtime.InteropServices; 4 | 5 | // 어셈블리의 일반 정보는 다음 특성 집합을 통해 제어됩니다. 6 | // 어셈블리와 관련된 정보를 수정하려면 7 | // 이 특성 값을 변경하십시오. 8 | [assembly: AssemblyTitle("WebService1")] 9 | [assembly: AssemblyDescription("")] 10 | [assembly: AssemblyConfiguration("")] 11 | [assembly: AssemblyCompany("Microsoft")] 12 | [assembly: AssemblyProduct("WebService1")] 13 | [assembly: AssemblyCopyright("Copyright © Microsoft 2016")] 14 | [assembly: AssemblyTrademark("")] 15 | [assembly: AssemblyCulture("")] 16 | 17 | // ComVisible을 false로 설정하면 이 어셈블리의 형식이 COM 구성 요소에 18 | // 표시되지 않습니다. COM에서 이 어셈블리의 형식에 액세스하려면 19 | // 해당 형식에 대해 ComVisible 특성을 true로 설정하십시오. 20 | [assembly: ComVisible(false)] 21 | 22 | // 이 프로젝트가 COM에 노출되는 경우 다음 GUID는 typelib의 ID를 나타냅니다. 23 | [assembly: Guid("3d5900ae-111a-45be-96b3-d9e4606ca793")] 24 | 25 | // 어셈블리의 버전 정보는 다음 네 가지 값으로 구성됩니다. 26 | // 27 | // 주 버전 28 | // 부 버전 29 | // 빌드 번호 30 | // 수정 버전 31 | // 32 | // 모든 값을 지정하거나 아래와 같이 '*'를 사용하여 빌드 번호 및 수정 버전이 자동으로 33 | // 지정되도록 할 수 있습니다. 34 | [assembly: AssemblyVersion("1.0.0.0")] 35 | [assembly: AssemblyFileVersion("1.0.0.0")] 36 | -------------------------------------------------------------------------------- /TestWebService/WebService1/WebService1/Service1.asmx: -------------------------------------------------------------------------------- 1 | <%@ WebService Language="C#" CodeBehind="Service1.asmx.cs" Class="WebService1.Service1" %> -------------------------------------------------------------------------------- /TestWebService/WebService1/WebService1/Service1.asmx.cs: -------------------------------------------------------------------------------- 1 | using System; 2 | using System.Collections.Generic; 3 | using System.Linq; 4 | using System.Web; 5 | using System.Web.Services; 6 | 7 | namespace WebService1 8 | { 9 | /// 10 | /// Service1의 요약 설명입니다. 11 | /// 12 | [WebService(Namespace = "http://tempuri.org/")] 13 | [WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)] 14 | [System.ComponentModel.ToolboxItem(false)] 15 | // ASP.NET AJAX를 사용하여 스크립트에서 이 웹 서비스를 호출하려면 다음 줄의 주석 처리를 제거합니다. 16 | // [System.Web.Script.Services.ScriptService] 17 | public class Service1 : System.Web.Services.WebService 18 | { 19 | 20 | [WebMethod] 21 | public string HelloWorld() 22 | { 23 | return "Hello World"; 24 | } 25 | 26 | [WebMethod] 27 | public string PutString(string name) 28 | { 29 | return "Hello " + name; 30 | } 31 | 32 | [WebMethod] 33 | public string PutStringInt(string name, int value) 34 | { 35 | return "Hello " + name + "(" + value + ")"; 36 | } 37 | } 38 | } 39 | -------------------------------------------------------------------------------- /TestWebSocketClient/TestWebSocketClient.vcproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/TestWebSocketClient/TestWebSocketClient.vcproj -------------------------------------------------------------------------------- /TestWhisper/Makefile: -------------------------------------------------------------------------------- 1 | # Makefile for TestWhisper 2 | # 3 | # programmer : yee young han ( websearch@naver.com ) 4 | # : http://blog.naver.com/websearch 5 | # start date : 2023/05/27 6 | 7 | include ../Makefile.mk 8 | 9 | INC=-I../HttpStack -I../TcpStack -I../Http2Parser -I../HttpParser \ 10 | -I../XmlParser -I../SipPlatform 11 | LIB=-L../HttpStack -lhttpstack \ 12 | -L../TcpStack -ltcpstack \ 13 | -L../Http2Parser -lhttp2parser \ 14 | -L../HttpParser -lhttpparser \ 15 | -L../XmlParser -lxmlparser \ 16 | -L../SipPlatform -lsipplatform \ 17 | $(OPENSSL_LIB) -lpthread 18 | 19 | .SUFFIXES: .o .cpp 20 | %.o : %.cpp 21 | $(CC) $(CFLAGS) -c $< $(INC) 22 | 23 | all: TestWhisper.exe 24 | 25 | SRV_OBJ=TestWhisper.o WhisperHttpServer.o WhisperThread.o WhisperMap.o 26 | 27 | TestWhisper.exe: $(SRV_OBJ) 28 | $(CC) $(CFLAGS) -o $@ $(SRV_OBJ) $(INC) $(LIB) 29 | 30 | clean: 31 | rm -f *.exe 32 | rm -f *.o 33 | rm -f core.* 34 | 35 | -------------------------------------------------------------------------------- /TestWhisper/TestWhisper.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/TestWhisper/TestWhisper.cpp -------------------------------------------------------------------------------- /TestWhisper/TestWhisper.h: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2021 Yee Young Han (http://blog.naver.com/websearch) 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #ifndef _TEST_WHISPER_H_ 20 | #define _TEST_WHISPER_H_ 21 | 22 | #include "WhisperHttpServer.h" 23 | #include "Directory.h" 24 | #include "Log.h" 25 | 26 | extern CHttpStack gclsStack; 27 | 28 | bool StartWhisperThread( const char * pszClientIp, int iClientPort, const char * pszFileName, const char * pszModel ); 29 | 30 | #endif 31 | -------------------------------------------------------------------------------- /TestWhisper/TestWhisper.vcproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/TestWhisper/TestWhisper.vcproj -------------------------------------------------------------------------------- /TestWhisper/WhisperHttpServer.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/TestWhisper/WhisperHttpServer.cpp -------------------------------------------------------------------------------- /TestWhisper/WhisperHttpServer.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/TestWhisper/WhisperHttpServer.h -------------------------------------------------------------------------------- /TestWsdlParser/Makefile: -------------------------------------------------------------------------------- 1 | # Makefile for TestWsdlParser 2 | # 3 | # programmer : yee young han ( websearch@naver.com ) 4 | # : http://blog.naver.com/websearch 5 | # start date : 2016/10/22 6 | 7 | include ../Makefile.mk 8 | 9 | INC=-I../WsdlParser -I../HttpStack -I../TcpStack \ 10 | -I../HttpParser -I../XmlParser -I../SipPlatform 11 | LIB=-L../WsdlParser -lwsdlparser \ 12 | -L../HttpStack -lhttpstack \ 13 | -L../TcpStack -ltcpstack \ 14 | -L../HttpParser -lhttpparser \ 15 | -L../XmlParser -lxmlparser \ 16 | -L../SipPlatform -lsipplatform \ 17 | $(OPENSSL_LIB) -lpthread 18 | 19 | .SUFFIXES: .o .cpp 20 | %.o : %.cpp 21 | $(CC) $(CFLAGS) -c $< $(INC) 22 | 23 | all: TestWsdlParser.exe 24 | 25 | SRV_OBJ=TestWsdlParser.o \ 26 | TestGlobalWeatherSoap.o SoapGlobalWeatherSoap.o \ 27 | TestWebService1.o SoapService1Soap.o 28 | 29 | TestWsdlParser.exe: $(SRV_OBJ) 30 | $(CC) $(CFLAGS) -o $@ $(SRV_OBJ) $(INC) $(LIB) 31 | 32 | clean: 33 | rm -f *.exe 34 | rm -f *.o 35 | rm -f core.* 36 | 37 | -------------------------------------------------------------------------------- /TestWsdlParser/ReadMe.md: -------------------------------------------------------------------------------- 1 | # TestWsdlParser 프로그램 2 | 3 | ### 개요 4 | 5 | * WsdlParser 라이브러리 테스트 프로그램 개발 6 | 7 | ### 개발자 정보 8 | 9 | * 이메일 : websearch@naver.com 10 | * 블로그 : http://blog.naver.com/websearch 11 | 12 | ### 라이선스 13 | 14 | * 본 프로젝트의 라이선스는 GPLv3 이고 기업용 라이선스는 websearch@naver.com 으로 문의해 주세요. 15 | -------------------------------------------------------------------------------- /TestWsdlParser/SoapGlobalWeatherSoap.h: -------------------------------------------------------------------------------- 1 | #ifndef _C_SOAP_GLOBAL_WEATHER_SOAP_H_ 2 | #define _C_SOAP_GLOBAL_WEATHER_SOAP_H_ 3 | 4 | #include 5 | 6 | class CSoapGlobalWeatherSoap 7 | { 8 | public: 9 | CSoapGlobalWeatherSoap(); 10 | ~CSoapGlobalWeatherSoap(); 11 | 12 | bool GetCitiesByCountry( std::string & strCountryName, std::string & strGetCitiesByCountryResultOut ); 13 | bool GetWeather( std::string & strCityName, std::string & strCountryName, std::string & strGetWeatherResultOut ); 14 | }; 15 | 16 | #endif 17 | -------------------------------------------------------------------------------- /TestWsdlParser/SoapService1Soap.h: -------------------------------------------------------------------------------- 1 | #ifndef _C_SOAP_SERVICE1_SOAP_H_ 2 | #define _C_SOAP_SERVICE1_SOAP_H_ 3 | 4 | #include 5 | 6 | class CSoapService1Soap 7 | { 8 | public: 9 | CSoapService1Soap(); 10 | ~CSoapService1Soap(); 11 | 12 | bool HelloWorld( std::string & strHelloWorldResultOut ); 13 | bool PutString( std::string & strname, std::string & strPutStringResultOut ); 14 | bool PutStringInt( std::string & strname, int & ivalue, std::string & strPutStringIntResultOut ); 15 | }; 16 | 17 | #endif 18 | -------------------------------------------------------------------------------- /TestWsdlParser/TestGlobalWeatherSoap.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/TestWsdlParser/TestGlobalWeatherSoap.cpp -------------------------------------------------------------------------------- /TestWsdlParser/TestWebService1.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/TestWsdlParser/TestWebService1.cpp -------------------------------------------------------------------------------- /TestWsdlParser/TestWsdlParser.cpp: -------------------------------------------------------------------------------- 1 | /* 2 | * Copyright (C) 2012 Yee Young Han (http://blog.naver.com/websearch) 3 | * 4 | * This program is free software; you can redistribute it and/or modify 5 | * it under the terms of the GNU General Public License as published by 6 | * the Free Software Foundation; either version 3 of the License, or 7 | * (at your option) any later version. 8 | * 9 | * This program is distributed in the hope that it will be useful, 10 | * but WITHOUT ANY WARRANTY; without even the implied warranty of 11 | * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 12 | * GNU General Public License for more details. 13 | * 14 | * You should have received a copy of the GNU General Public License 15 | * along with this program; if not, write to the Free Software 16 | * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 17 | */ 18 | 19 | #include "WsdlMessage.h" 20 | 21 | bool TestGlobalWeatherSoap( ); 22 | bool MakeGlobalWeatherSoap( ); 23 | 24 | bool TestWebService1Soap( ); 25 | bool MakeWebService1Soap( ); 26 | 27 | int main( int argc, char * argv[] ) 28 | { 29 | #ifdef WIN32 30 | _CrtSetDbgFlag( _CRTDBG_ALLOC_MEM_DF | _CRTDBG_LEAK_CHECK_DF | _CRTDBG_CHECK_ALWAYS_DF ); 31 | #endif 32 | 33 | if( argc >= 2 ) 34 | { 35 | if( !strcmp( argv[1], "weather" ) ) 36 | { 37 | TestGlobalWeatherSoap( ); 38 | } 39 | else if( !strcmp( argv[1], "webservice1" ) ) 40 | { 41 | TestWebService1Soap( ); 42 | } 43 | } 44 | else 45 | { 46 | MakeGlobalWeatherSoap( ); 47 | MakeWebService1Soap( ); 48 | } 49 | 50 | return 0; 51 | } 52 | -------------------------------------------------------------------------------- /TestWsdlParser/TestWsdlParser.vcproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/TestWsdlParser/TestWsdlParser.vcproj -------------------------------------------------------------------------------- /TestWsdlParser/TestWsdlParser.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | {4FC737F1-C7A5-4376-A066-2A32D752A2FF} 6 | cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx 7 | 8 | 9 | 10 | 11 | 소스 파일 12 | 13 | 14 | 소스 파일 15 | 16 | 17 | 소스 파일 18 | 19 | 20 | 소스 파일 21 | 22 | 23 | 소스 파일 24 | 25 | 26 | 27 | 28 | 소스 파일 29 | 30 | 31 | 소스 파일 32 | 33 | 34 | -------------------------------------------------------------------------------- /TestXmlParser/ReadMe.md: -------------------------------------------------------------------------------- 1 | # TestXmlParser 프로그램 2 | 3 | ### 개요 4 | 5 | * XmlParser 라이브러리 테스트 프로그램 개발 6 | 7 | ### 개발자 정보 8 | 9 | * 이메일 : websearch@naver.com 10 | * 블로그 : http://blog.naver.com/websearch 11 | 12 | ### 라이선스 13 | 14 | * 본 프로젝트의 라이선스는 GPLv3 이고 기업용 라이선스는 websearch@naver.com 으로 문의해 주세요. 15 | -------------------------------------------------------------------------------- /TestXmlParser/TestXmlParser.vcproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/TestXmlParser/TestXmlParser.vcproj -------------------------------------------------------------------------------- /TestXmlParser/TestXmlParser.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | {4FC737F1-C7A5-4376-A066-2A32D752A2FF} 6 | cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx 7 | 8 | 9 | 10 | 11 | 소스 파일 12 | 13 | 14 | -------------------------------------------------------------------------------- /WpdPack/32bit/Packet.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/WpdPack/32bit/Packet.lib -------------------------------------------------------------------------------- /WpdPack/32bit/wpcap.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/WpdPack/32bit/wpcap.lib -------------------------------------------------------------------------------- /WpdPack/64bit/Packet.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/WpdPack/64bit/Packet.lib -------------------------------------------------------------------------------- /WpdPack/64bit/wpcap.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/WpdPack/64bit/wpcap.lib -------------------------------------------------------------------------------- /WpdPack/Readme.md: -------------------------------------------------------------------------------- 1 | # WinPcap 4.1.2 -------------------------------------------------------------------------------- /WsdlParser/Makefile: -------------------------------------------------------------------------------- 1 | # Makefile for WsdlParser 2 | # 3 | # programmer : yee young han ( websearch@naver.com ) 4 | # : http://blog.naver.com/websearch 5 | # start date : 2016/10/22 6 | 7 | include ../Makefile.mk 8 | 9 | INC=-I../HttpStack -I../TcpStack -I../XmlParser -I../SipPlatform 10 | 11 | .SUFFIXES: .o .cpp 12 | %.o : %.cpp 13 | $(CC) $(CFLAGS) -c $< $(INC) 14 | 15 | all: libwsdlparser.a 16 | 17 | LIB_OBJ=SoapArg.o SoapClass.o SoapMethod.o \ 18 | WsdlMessage.o 19 | 20 | libwsdlparser.a: $(LIB_OBJ) 21 | ar crv $@ $(LIB_OBJ) 22 | 23 | clean: 24 | rm -f *.a 25 | rm -f *.o 26 | rm -f core.* 27 | 28 | -------------------------------------------------------------------------------- /WsdlParser/ReadMe.md: -------------------------------------------------------------------------------- 1 | # WsdlParser 라이브러리 2 | 3 | ### 개요 4 | 5 | * C++ STL 라이브러리를 이용한 WSDL 메시지 파싱 라이브러리 개발 6 | 7 | ### 개발자 정보 8 | 9 | * 이메일 : websearch@naver.com 10 | * 블로그 : http://blog.naver.com/websearch 11 | 12 | ### 라이선스 13 | 14 | * 본 프로젝트의 라이선스는 GPLv3 이고 기업용 라이선스는 websearch@naver.com 으로 문의해 주세요. 15 | -------------------------------------------------------------------------------- /WsdlParser/SoapArg.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/WsdlParser/SoapArg.cpp -------------------------------------------------------------------------------- /WsdlParser/SoapArg.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/WsdlParser/SoapArg.h -------------------------------------------------------------------------------- /WsdlParser/SoapClass.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/WsdlParser/SoapClass.cpp -------------------------------------------------------------------------------- /WsdlParser/SoapClass.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/WsdlParser/SoapClass.h -------------------------------------------------------------------------------- /WsdlParser/SoapMethod.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/WsdlParser/SoapMethod.cpp -------------------------------------------------------------------------------- /WsdlParser/SoapMethod.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/WsdlParser/SoapMethod.h -------------------------------------------------------------------------------- /WsdlParser/WsdlMessage.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/WsdlParser/WsdlMessage.cpp -------------------------------------------------------------------------------- /WsdlParser/WsdlMessage.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/WsdlParser/WsdlMessage.h -------------------------------------------------------------------------------- /WsdlParser/WsdlParser.vcproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/WsdlParser/WsdlParser.vcproj -------------------------------------------------------------------------------- /WsdlParser/WsdlParser.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | {4FC737F1-C7A5-4376-A066-2A32D752A2FF} 6 | cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx 7 | 8 | 9 | {93995380-89BD-4b04-88EB-625FBE52EBFB} 10 | h;hpp;hxx;hm;inl;inc;xsd 11 | 12 | 13 | 14 | 15 | 소스 파일 16 | 17 | 18 | 소스 파일 19 | 20 | 21 | 소스 파일 22 | 23 | 24 | 소스 파일 25 | 26 | 27 | 28 | 29 | 헤더 파일 30 | 31 | 32 | 헤더 파일 33 | 34 | 35 | 헤더 파일 36 | 37 | 38 | 헤더 파일 39 | 40 | 41 | -------------------------------------------------------------------------------- /XmlParser/Makefile: -------------------------------------------------------------------------------- 1 | # Makefile for XmlParser 2 | # 3 | # programmer : yee young han ( websearch@naver.com ) 4 | # : http://blog.naver.com/websearch 5 | # start date : 2012/08/09 6 | 7 | include ../Makefile.mk 8 | 9 | INC=-I../SipParser -I../SipPlatform 10 | 11 | .SUFFIXES: .o .cpp 12 | %.o : %.cpp 13 | $(CC) $(CFLAGS) -c $< $(INC) 14 | 15 | all: libxmlparser.a 16 | 17 | LIB_OBJ=XmlElement.o XmlSearch.o 18 | 19 | libxmlparser.a: $(LIB_OBJ) 20 | ar crv $@ $(LIB_OBJ) 21 | 22 | clean: 23 | rm -f *.a 24 | rm -f *.o 25 | rm -f core.* 26 | 27 | -------------------------------------------------------------------------------- /XmlParser/ReadMe.md: -------------------------------------------------------------------------------- 1 | # XmlParser 라이브러리 2 | 3 | ### 개요 4 | 5 | * C++ XML 문서 파서/생성 라이브러리 개발 6 | 7 | ### 개발자 정보 8 | 9 | * 이메일 : websearch@naver.com 10 | * 블로그 : http://blog.naver.com/websearch 11 | 12 | ### 라이선스 13 | 14 | * 본 프로젝트의 라이선스는 GPLv3 이고 기업용 라이선스는 websearch@naver.com 으로 문의해 주세요. 15 | -------------------------------------------------------------------------------- /XmlParser/ReadMe.txt: -------------------------------------------------------------------------------- 1 | ================== 2 | XmlParser 라이브러리 3 | ================== 4 | 5 | 1. 개요 6 | 7 | * C++ XML 문서 파서/생성 라이브러리 개발 8 | 9 | 2. 개발자 정보 10 | 11 | * 이영한 12 | * 이메일 : websearch@naver.com 13 | * 블로그 : http://blog.naver.com/websearch 14 | 15 | 3. 라이선스 16 | 17 | * 본 프로젝트의 라이선스는 GPLv3 이고 기업용 라이선스는 websearch@naver.com 으로 문의해 주세요. 18 | -------------------------------------------------------------------------------- /XmlParser/XmlElement.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/XmlParser/XmlElement.cpp -------------------------------------------------------------------------------- /XmlParser/XmlElement.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/XmlParser/XmlElement.h -------------------------------------------------------------------------------- /XmlParser/XmlParser.vcproj: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/XmlParser/XmlParser.vcproj -------------------------------------------------------------------------------- /XmlParser/XmlParser.vcxproj.filters: -------------------------------------------------------------------------------- 1 |  2 | 3 | 4 | 5 | {4FC737F1-C7A5-4376-A066-2A32D752A2FF} 6 | cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx 7 | 8 | 9 | {93995380-89BD-4b04-88EB-625FBE52EBFB} 10 | h;hpp;hxx;hm;inl;inc;xsd 11 | 12 | 13 | 14 | 15 | 소스 파일 16 | 17 | 18 | 소스 파일 19 | 20 | 21 | 22 | 23 | 헤더 파일 24 | 25 | 26 | 헤더 파일 27 | 28 | 29 | -------------------------------------------------------------------------------- /XmlParser/XmlSearch.cpp: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/XmlParser/XmlSearch.cpp -------------------------------------------------------------------------------- /XmlParser/XmlSearch.h: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/XmlParser/XmlSearch.h -------------------------------------------------------------------------------- /doc/C++ HTTP stack 및 TCP stack 설정 파일.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/doc/C++ HTTP stack 및 TCP stack 설정 파일.txt -------------------------------------------------------------------------------- /doc/C++ HTTP stack 및 TCP stack 설정.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/doc/C++ HTTP stack 및 TCP stack 설정.txt -------------------------------------------------------------------------------- /doc/HTTP stack 아키텍처.pptx: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/doc/HTTP stack 아키텍처.pptx -------------------------------------------------------------------------------- /doc/upload.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | File upload 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 |
13 | 14 | -------------------------------------------------------------------------------- /openssl/ReadMe.md: -------------------------------------------------------------------------------- 1 | # openssl 라이브러리 2 | 3 | -------------------------------------------------------------------------------- /openssl/linux/64bit/ReadMe.md: -------------------------------------------------------------------------------- 1 | # openssl 라이브러리 2 | 3 | openssl-1.0.2k 4 | 5 | ``` 6 | # ./config no-shared 7 | # make 8 | ``` 9 | 10 | -------------------------------------------------------------------------------- /openssl/linux/64bit/include/openssl/ebcdic.h: -------------------------------------------------------------------------------- 1 | /* crypto/ebcdic.h */ 2 | 3 | #ifndef HEADER_EBCDIC_H 4 | # define HEADER_EBCDIC_H 5 | 6 | # include 7 | 8 | #ifdef __cplusplus 9 | extern "C" { 10 | #endif 11 | 12 | /* Avoid name clashes with other applications */ 13 | # define os_toascii _openssl_os_toascii 14 | # define os_toebcdic _openssl_os_toebcdic 15 | # define ebcdic2ascii _openssl_ebcdic2ascii 16 | # define ascii2ebcdic _openssl_ascii2ebcdic 17 | 18 | extern const unsigned char os_toascii[256]; 19 | extern const unsigned char os_toebcdic[256]; 20 | void *ebcdic2ascii(void *dest, const void *srce, size_t count); 21 | void *ascii2ebcdic(void *dest, const void *srce, size_t count); 22 | 23 | #ifdef __cplusplus 24 | } 25 | #endif 26 | #endif 27 | -------------------------------------------------------------------------------- /openssl/linux/64bit/include/openssl/whrlpool.h: -------------------------------------------------------------------------------- 1 | #ifndef HEADER_WHRLPOOL_H 2 | # define HEADER_WHRLPOOL_H 3 | 4 | # include 5 | # include 6 | 7 | #ifdef __cplusplus 8 | extern "C" { 9 | #endif 10 | 11 | # define WHIRLPOOL_DIGEST_LENGTH (512/8) 12 | # define WHIRLPOOL_BBLOCK 512 13 | # define WHIRLPOOL_COUNTER (256/8) 14 | 15 | typedef struct { 16 | union { 17 | unsigned char c[WHIRLPOOL_DIGEST_LENGTH]; 18 | /* double q is here to ensure 64-bit alignment */ 19 | double q[WHIRLPOOL_DIGEST_LENGTH / sizeof(double)]; 20 | } H; 21 | unsigned char data[WHIRLPOOL_BBLOCK / 8]; 22 | unsigned int bitoff; 23 | size_t bitlen[WHIRLPOOL_COUNTER / sizeof(size_t)]; 24 | } WHIRLPOOL_CTX; 25 | 26 | # ifndef OPENSSL_NO_WHIRLPOOL 27 | # ifdef OPENSSL_FIPS 28 | int private_WHIRLPOOL_Init(WHIRLPOOL_CTX *c); 29 | # endif 30 | int WHIRLPOOL_Init(WHIRLPOOL_CTX *c); 31 | int WHIRLPOOL_Update(WHIRLPOOL_CTX *c, const void *inp, size_t bytes); 32 | void WHIRLPOOL_BitUpdate(WHIRLPOOL_CTX *c, const void *inp, size_t bits); 33 | int WHIRLPOOL_Final(unsigned char *md, WHIRLPOOL_CTX *c); 34 | unsigned char *WHIRLPOOL(const void *inp, size_t bytes, unsigned char *md); 35 | # endif 36 | 37 | #ifdef __cplusplus 38 | } 39 | #endif 40 | 41 | #endif 42 | -------------------------------------------------------------------------------- /openssl/linux/64bit/lib/libcrypto.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/openssl/linux/64bit/lib/libcrypto.a -------------------------------------------------------------------------------- /openssl/linux/64bit/lib/libssl.a: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/openssl/linux/64bit/lib/libssl.a -------------------------------------------------------------------------------- /openssl/window/32bit/Readme.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/openssl/window/32bit/Readme.txt -------------------------------------------------------------------------------- /openssl/window/32bit/bin/openssl.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/openssl/window/32bit/bin/openssl.exe -------------------------------------------------------------------------------- /openssl/window/32bit/include/openssl/ebcdic.h: -------------------------------------------------------------------------------- 1 | /* crypto/ebcdic.h */ 2 | 3 | #ifndef HEADER_EBCDIC_H 4 | # define HEADER_EBCDIC_H 5 | 6 | # include 7 | 8 | #ifdef __cplusplus 9 | extern "C" { 10 | #endif 11 | 12 | /* Avoid name clashes with other applications */ 13 | # define os_toascii _openssl_os_toascii 14 | # define os_toebcdic _openssl_os_toebcdic 15 | # define ebcdic2ascii _openssl_ebcdic2ascii 16 | # define ascii2ebcdic _openssl_ascii2ebcdic 17 | 18 | extern const unsigned char os_toascii[256]; 19 | extern const unsigned char os_toebcdic[256]; 20 | void *ebcdic2ascii(void *dest, const void *srce, size_t count); 21 | void *ascii2ebcdic(void *dest, const void *srce, size_t count); 22 | 23 | #ifdef __cplusplus 24 | } 25 | #endif 26 | #endif 27 | -------------------------------------------------------------------------------- /openssl/window/32bit/include/openssl/whrlpool.h: -------------------------------------------------------------------------------- 1 | #ifndef HEADER_WHRLPOOL_H 2 | # define HEADER_WHRLPOOL_H 3 | 4 | # include 5 | # include 6 | 7 | #ifdef __cplusplus 8 | extern "C" { 9 | #endif 10 | 11 | # define WHIRLPOOL_DIGEST_LENGTH (512/8) 12 | # define WHIRLPOOL_BBLOCK 512 13 | # define WHIRLPOOL_COUNTER (256/8) 14 | 15 | typedef struct { 16 | union { 17 | unsigned char c[WHIRLPOOL_DIGEST_LENGTH]; 18 | /* double q is here to ensure 64-bit alignment */ 19 | double q[WHIRLPOOL_DIGEST_LENGTH / sizeof(double)]; 20 | } H; 21 | unsigned char data[WHIRLPOOL_BBLOCK / 8]; 22 | unsigned int bitoff; 23 | size_t bitlen[WHIRLPOOL_COUNTER / sizeof(size_t)]; 24 | } WHIRLPOOL_CTX; 25 | 26 | # ifndef OPENSSL_NO_WHIRLPOOL 27 | # ifdef OPENSSL_FIPS 28 | int private_WHIRLPOOL_Init(WHIRLPOOL_CTX *c); 29 | # endif 30 | int WHIRLPOOL_Init(WHIRLPOOL_CTX *c); 31 | int WHIRLPOOL_Update(WHIRLPOOL_CTX *c, const void *inp, size_t bytes); 32 | void WHIRLPOOL_BitUpdate(WHIRLPOOL_CTX *c, const void *inp, size_t bits); 33 | int WHIRLPOOL_Final(unsigned char *md, WHIRLPOOL_CTX *c); 34 | unsigned char *WHIRLPOOL(const void *inp, size_t bytes, unsigned char *md); 35 | # endif 36 | 37 | #ifdef __cplusplus 38 | } 39 | #endif 40 | 41 | #endif 42 | -------------------------------------------------------------------------------- /openssl/window/32bit/lib-debug/lib.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/openssl/window/32bit/lib-debug/lib.pdb -------------------------------------------------------------------------------- /openssl/window/32bit/lib-debug/libeay32.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/openssl/window/32bit/lib-debug/libeay32.lib -------------------------------------------------------------------------------- /openssl/window/32bit/lib-debug/ssleay32.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/openssl/window/32bit/lib-debug/ssleay32.lib -------------------------------------------------------------------------------- /openssl/window/32bit/lib-vc2017/lib.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/openssl/window/32bit/lib-vc2017/lib.pdb -------------------------------------------------------------------------------- /openssl/window/32bit/lib-vc2017/libeay32.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/openssl/window/32bit/lib-vc2017/libeay32.lib -------------------------------------------------------------------------------- /openssl/window/32bit/lib-vc2017/ssleay32.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/openssl/window/32bit/lib-vc2017/ssleay32.lib -------------------------------------------------------------------------------- /openssl/window/32bit/lib/lib.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/openssl/window/32bit/lib/lib.pdb -------------------------------------------------------------------------------- /openssl/window/32bit/lib/libeay32.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/openssl/window/32bit/lib/libeay32.lib -------------------------------------------------------------------------------- /openssl/window/32bit/lib/ssleay32.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/openssl/window/32bit/lib/ssleay32.lib -------------------------------------------------------------------------------- /openssl/window/64bit/Readme.txt: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/openssl/window/64bit/Readme.txt -------------------------------------------------------------------------------- /openssl/window/64bit/bin/openssl.exe: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/openssl/window/64bit/bin/openssl.exe -------------------------------------------------------------------------------- /openssl/window/64bit/include/openssl/ebcdic.h: -------------------------------------------------------------------------------- 1 | /* crypto/ebcdic.h */ 2 | 3 | #ifndef HEADER_EBCDIC_H 4 | # define HEADER_EBCDIC_H 5 | 6 | # include 7 | 8 | #ifdef __cplusplus 9 | extern "C" { 10 | #endif 11 | 12 | /* Avoid name clashes with other applications */ 13 | # define os_toascii _openssl_os_toascii 14 | # define os_toebcdic _openssl_os_toebcdic 15 | # define ebcdic2ascii _openssl_ebcdic2ascii 16 | # define ascii2ebcdic _openssl_ascii2ebcdic 17 | 18 | extern const unsigned char os_toascii[256]; 19 | extern const unsigned char os_toebcdic[256]; 20 | void *ebcdic2ascii(void *dest, const void *srce, size_t count); 21 | void *ascii2ebcdic(void *dest, const void *srce, size_t count); 22 | 23 | #ifdef __cplusplus 24 | } 25 | #endif 26 | #endif 27 | -------------------------------------------------------------------------------- /openssl/window/64bit/include/openssl/whrlpool.h: -------------------------------------------------------------------------------- 1 | #ifndef HEADER_WHRLPOOL_H 2 | # define HEADER_WHRLPOOL_H 3 | 4 | # include 5 | # include 6 | 7 | #ifdef __cplusplus 8 | extern "C" { 9 | #endif 10 | 11 | # define WHIRLPOOL_DIGEST_LENGTH (512/8) 12 | # define WHIRLPOOL_BBLOCK 512 13 | # define WHIRLPOOL_COUNTER (256/8) 14 | 15 | typedef struct { 16 | union { 17 | unsigned char c[WHIRLPOOL_DIGEST_LENGTH]; 18 | /* double q is here to ensure 64-bit alignment */ 19 | double q[WHIRLPOOL_DIGEST_LENGTH / sizeof(double)]; 20 | } H; 21 | unsigned char data[WHIRLPOOL_BBLOCK / 8]; 22 | unsigned int bitoff; 23 | size_t bitlen[WHIRLPOOL_COUNTER / sizeof(size_t)]; 24 | } WHIRLPOOL_CTX; 25 | 26 | # ifndef OPENSSL_NO_WHIRLPOOL 27 | # ifdef OPENSSL_FIPS 28 | int private_WHIRLPOOL_Init(WHIRLPOOL_CTX *c); 29 | # endif 30 | int WHIRLPOOL_Init(WHIRLPOOL_CTX *c); 31 | int WHIRLPOOL_Update(WHIRLPOOL_CTX *c, const void *inp, size_t bytes); 32 | void WHIRLPOOL_BitUpdate(WHIRLPOOL_CTX *c, const void *inp, size_t bits); 33 | int WHIRLPOOL_Final(unsigned char *md, WHIRLPOOL_CTX *c); 34 | unsigned char *WHIRLPOOL(const void *inp, size_t bytes, unsigned char *md); 35 | # endif 36 | 37 | #ifdef __cplusplus 38 | } 39 | #endif 40 | 41 | #endif 42 | -------------------------------------------------------------------------------- /openssl/window/64bit/lib-debug/lib.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/openssl/window/64bit/lib-debug/lib.pdb -------------------------------------------------------------------------------- /openssl/window/64bit/lib-debug/libeay32.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/openssl/window/64bit/lib-debug/libeay32.lib -------------------------------------------------------------------------------- /openssl/window/64bit/lib-debug/ssleay32.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/openssl/window/64bit/lib-debug/ssleay32.lib -------------------------------------------------------------------------------- /openssl/window/64bit/lib-vc2017/lib.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/openssl/window/64bit/lib-vc2017/lib.pdb -------------------------------------------------------------------------------- /openssl/window/64bit/lib-vc2017/libeay32.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/openssl/window/64bit/lib-vc2017/libeay32.lib -------------------------------------------------------------------------------- /openssl/window/64bit/lib-vc2017/ssleay32.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/openssl/window/64bit/lib-vc2017/ssleay32.lib -------------------------------------------------------------------------------- /openssl/window/64bit/lib/lib.pdb: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/openssl/window/64bit/lib/lib.pdb -------------------------------------------------------------------------------- /openssl/window/64bit/lib/libeay32.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/openssl/window/64bit/lib/libeay32.lib -------------------------------------------------------------------------------- /openssl/window/64bit/lib/ssleay32.lib: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/YeeYoungHan/cpphttpstack/ae785a0dd95e3fd62bd781dcac3be0617a9abbc6/openssl/window/64bit/lib/ssleay32.lib --------------------------------------------------------------------------------