1 // aerie.cpp : Defines the entry point for the console application.
5 #include "definitions.h"
12 * \todo obs�uga b��d�w!
14 SOCKET
win_start_server(int port
)
23 if (WSAStartup(ver
,NULL
) != 0)
25 s
= socket(AF_INET
, SOCK_STREAM
, IPPROTO_TCP
);
27 memset(&addr
, 0, sizeof(addr
));
28 addr
.sin_family
= AF_INET
;
29 addr
.sin_port
= htons(port
);
30 addr
.sin_addr
.s_addr
= htonl(INADDR_ANY
);
33 setsockopt(s
, SOL_SOCKET
, SO_REUSEADDR
, (char*)&foo
, sizeof(foo
));
35 bind(s
, (sockaddr
*)&addr
, sizeof(addr
));
37 listen(s
, CONF_TCP_QUEUE_SIZE
);
47 * start server on linux
49 SOCKET
lin_server_start(int port
)
54 s
= socket(AF_INET
, SOCK_STREAM
, IPPROTO_TCP
);
56 memset(&addr
, 0, sizeof(addr
));
57 addr
.sin_family
= AF_INET
;
58 addr
.sin_port
= htons(port
);
59 addr
.sin_addr
.s_addr
= htonl(INADDR_ANY
);
62 setsockopt(s
, SOL_SOCKET
, SO_REUSEADDR
, (char*)&foo
, sizeof(foo
));
64 bind(s
, (sockaddr
*)&addr
, sizeof(addr
));
66 listen(s
, CONF_TCP_QUEUE_SIZE
);
71 int main(int argc
, char* argv
[])
73 lin_server_start(2206);
75 s
= "test123_!@#$%^&*()_+ za���";
76 printf("[%s]\n", s
.c_str());
77 s
= urlencode(string(s
));
78 printf("[%s]\n", s
.c_str());
80 printf("[%s]\n", s
.c_str());
88 server_loop -> open_socket -> socket_reader
90 socket_reader -> request_factory -> request
92 request -> queue(read data for request - type of task)
96 queue -> get needed data -> queue(send)
99 [task] : property of request(?)
101 bool run() - TRUE task is finished, FALSE needs to remain in queue
104 class getFileTask : public task {
109 -- [code] ------------------------------------------------------------------------------
110 :: obsluga kolejki zadan od zadan
112 queue< pair<request,task> > tasks_queue;
113 while !empty(task_queue)
114 pair = front(tasks_queue)
116 requests_queue.add(pair.request)
118 tasks_queue.add(pair);
119 -- [/code] -----------------------------------------------------------------------------
122 -- [code] ------------------------------------------------------------------------------
123 :: obsluga czytania socketow
125 if (some_socket_need_to_be_read)
126 socket = find_socket_to_read()
127 reader = get_socket_reader(socket)
129 -- [/code] -----------------------------------------------------------------------------