C++ listen tcp socket
От: Handler Украина  
Дата: 27.09.11 23:22
Оценка:
Здравствуйте!
Задача:
Создать приложение демон-процесс, слушающий и обрабатывающий запросы к TCP порту основанные на HTTP, выдающий в результате обработки запроса HTML-контент взятый из базы данных mysql, выполняющий перекодирование выдаваемого контента в желаемую/затребованную кодировку, которая устанавливается либо в самом запросе, либо в настройках его инициализационных параметров.
К сожалению, никогда не писал С++ программ для работы в сети, поэтому не представляю себе, что и в какой последовательности работает.
Я написал следующую программу:

int main (int argc, char * const argv[]) {
struct sockaddr_in addr_info;
int add_len = sizeof(addr_info);
int ret_addr, sock_id;
char* buf = new char[256];

bzero(&addr_info, sizeof(addr_info));
addr_info.sin_family = AF_INET;
addr_info.sin_port = 8080;
addr_info.sin_addr.s_addr = INADDR_ANY;

sock_id = socket(AF_INET, SOCK_STREAM, 0);
if (sock_id==-1) {cout<< "Error create socket\n"; return -1;}
if (bind(sock_id, (struct sockaddr*)&addr_info, sizeof(addr_info))==-1) {cout<< "Error bind\n"; return -1;}
listen(sock_id, 5);
ret_addr = recv(sock_id, buf, 256, 0);
// ret_addr = accept(sock_id, (struct sockaddr*)&addr_info, (socklen_t*)&add_len);
return 0;
}

Но я так понимаю, что это совсем не в ту сторону. Единственное, что тут правильно — это socket().
Пожалуйста, подскажите схему приложения-реализации данной задачи, что за чем следует, а я постараюсь по Вашей схеме написать реализацию.
Заранее благодарен.
Алексей

28.09.11 13:56: Перенесено модератором из 'C/C++' — Odi$$ey
Whoa...I did a 'zcat /vmlinuz > /dev/audio' and I think I heard God...
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.