информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Страшный баг в WindowsПортрет посетителяГде водятся OGRы
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 На GitHub пугают ложными предупреждениями... 
 Атака на пользователей больших... 
 Notepad++ полгода раздавал зараженные... 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
[C++] Как научить сервер(Visual C++) пониать определенные слова? 25.02.02 09:55  
Автор: BigEye Статус: Незарегистрированный пользователь
<"чистая" ссылка>
написал сервер:
#include
#include
#define WINSOCK_VERSION 0x0101

void main()
{
WSADATA wsaData;
struct sockaddr add;
struct sockaddr_in addr;
int add_len;
add_len = sizeof(sockaddr);
int acc;
int sock;
char buf[1024];
(WSAStartup(WINSOCK_VERSION, &wsaData));
{
sock = socket(PF_INET, SOCK_STREAM, 0);
addr.sin_family = AF_INET;
addr.sin_port = htons(4000);
addr.sin_addr.s_addr = INADDR_ANY;
bind(sock,( struct sockaddr *) &addr, sizeof(sockaddr_in));
listen(sock,10);
acc = accept(sock,(struct sockaddr *) &add, &add_len);
{
do
{
recv(acc,buf,sizeof(buf),0);


}
while( strncmp("bye\r", buf,4) !=0);
}

}}
Как сделать чтобы он реагировал на определенные слова!? Я это сделал, но работает ОЧЕНЬ коряво! Как правильно? Есть ли ошибки в сервере? Скажите, если заметите! Спасибо заранее!
корректней вопросы задавай (+ внутрь загляни) 28.02.02 06:13  
Автор: йцукенг <jcukeng> Статус: Member
<"чистая" ссылка>
> listen(sock,10);
константа 10 потрясает
особенно если учесть, что все делается в одной нити.
если уж ты не используешь WSA-ф-ии, используй многопоточность.
в данном случае у тебя сервер может обсуживать не более 1 клиента за раз.
это замечание, которые ты просил.
> Как сделать чтобы он реагировал на определенные слова!? Я
> это сделал, но работает ОЧЕНЬ коряво! Как правильно? Есть
> ли ошибки в сервере? Скажите, если заметите! Спасибо
> заранее!
честно говоря, ты плохо умеешь задавать вопросы. я, например, не понял твою проблему - ты что, слово bye в тексте не всегда распознаешь?

попробуй проверить вот что - выводи на печать или в лог все строки которые считывает программа после каждого recv и сравнивай с тем что посылал.
наверняка какое-нибудь "слово" считывается за два вызова recv, а не за один, как ты, видимо, ожидаешь.
PS. очень рекомендую скачать исходники BackOrifice2000 и немного поизучать. Очень полезно для начинающих винсокеров:).
1




Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2026 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach