1 #include <HTTPSocket.h>
2 #include <SocketHandler.h>
3 #include <ListenSocket.h>
7 class tSocket
: public HTTPSocket
10 tSocket(ISocketHandler
& h
) : HTTPSocket(h
)
16 tSocket(ISocketHandler
& h
, const std::string
& host
) : HTTPSocket(h
), m_host(host
)
23 void InitSSLServer() {
24 InitializeContext("", "comb.pem", "", SSLv23_method());
28 printf("OnSSLAccept()\n");
29 HTTPSocket::OnSSLAccept();
33 printf("OnSSLConnect()\n");
34 HTTPSocket::OnSSLConnect();
42 printf("OnConnect\n");
43 Send("GET /index.html HTTP/1.0\r\n");
44 Send("Host: " + m_host
+ "\r\n");
51 void OnHeader(const std::string
& key
, const std::string
& value
) {
52 fprintf(stderr
, "%s: %s\n", key
.c_str(), value
.c_str());
55 void OnHeaderComplete() {
56 fprintf(stderr
, "\n");
59 void OnData(const char *buf
, size_t sz
) {
62 std::string str
= buf
;
64 printf("%s", str
.c_str());
71 fprintf(stderr
, "Content length: %d\n", m_sz
);
81 int main(int argc
, char *argv
[])
86 if (argc
> 1 && !strcmp(argv
[1], "-server"))
88 ListenSocket
<tSocket
> l(h
);
98 std::string host
= argc
> 1 ? argv
[1] : "www.alhem.net";
99 tSocket
sock(h
, host
);
107 catch (const Exception
& e
)
109 printf("%s\n", e
.ToString().c_str());