Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > C/C++ Сетевое программирование
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 06.07.2009, 23:24   #11
Артэс
Форумчанин
 
Регистрация: 05.06.2007
Сообщений: 529
По умолчанию

Ну понятно. Т.е не зависимо, даже если флудеры будут флудить, настоящий пользователь полюбому "протиснется"? Просто тогда да, не тратить время на прием данных, а проверить IP и закрыть соединение / принять данные
Артэс вне форума Ответить с цитированием
Старый 06.07.2009, 23:59   #12
vvviperrr
Тупой студент
Форумчанин
 
Аватар для vvviperrr
 
Регистрация: 12.05.2007
Сообщений: 614
По умолчанию

Цитата:
Сообщение от Артэс Посмотреть сообщение
Ну понятно. Т.е не зависимо, даже если флудеры будут флудить, настоящий пользователь полюбому "протиснется"? Просто тогда да, не тратить время на прием данных, а проверить IP и закрыть соединение / принять данные
смотря как флудить будут, большая ли у тя очередь, довольно мощный ли комп/канал, чтобы он обрабатывал запросы из очереди быстрее, чем флудеры ее забивают.
vvviperrr вне форума Ответить с цитированием
Старый 07.07.2009, 11:48   #13
Артэс
Форумчанин
 
Регистрация: 05.06.2007
Сообщений: 529
По умолчанию

Т.е этому подвержена практически любая программа, работающая в качестве сервера? Тут выход только лишь файрволлом блокировать IP адреса получается? ... с другой стороны, файрволлу тоже нужно принять данные и проверить IP адрес. Так где-же процесс проверки и блокировки будет проходить быстрее?

Последний раз редактировалось Артэс; 07.07.2009 в 12:26.
Артэс вне форума Ответить с цитированием
Старый 07.07.2009, 12:51   #14
vvviperrr
Тупой студент
Форумчанин
 
Аватар для vvviperrr
 
Регистрация: 12.05.2007
Сообщений: 614
По умолчанию

2Артэс ddos-у (denial access of service, атака отказа в обслуживании) подвержены абсолютно все сервера. у некоторых отказоустойчивость выше за счет мощного оборудования и широкого канала связи + используются разные политики безопасности (например, бан адресата, если он подключается к серверу 10 раз в секунду, для примера). я ничего не могу сказать вменяемого по данному вопросу, почитай какую нить литературу, ну хотя бы вот это http://www.i2r.ru/static/452/out_19122.shtml.
vvviperrr вне форума Ответить с цитированием
Старый 07.07.2009, 13:50   #15
Артэс
Форумчанин
 
Регистрация: 05.06.2007
Сообщений: 529
По умолчанию

Спасибо. И тогда последний вопрос о сокетах в этой теме... я посылаю их способом send(connection,a,1000,0);. Т.е видно, кол-во посылаемых байт равно 1000. А если я посылаю 10000, то мне просто так и делать?
Код:
send(connection,a,10000,0);
или разделить эту сумму на 10, и послать 10 раз по 1000 ?

Почему я сомневаюсь - знаю что существует MTU - ограничитель посылаемых байтов, который около 1500. Или размер пакета. Я немного путаюсь, посему и спрашиваю, могу ли я смело посылать 10000 байт сразу за один раз?

Последний раз редактировалось Артэс; 07.07.2009 в 14:01.
Артэс вне форума Ответить с цитированием
Старый 07.07.2009, 14:28   #16
vvviperrr
Тупой студент
Форумчанин
 
Аватар для vvviperrr
 
Регистрация: 12.05.2007
Сообщений: 614
По умолчанию

2Артэс
Цитата:
А если я посылаю 10000, то мне просто так и делать?
ничего подобного. я тебе больше скажу, ты не имеешь права посылать и 100 байт без проверки. ты вообще доку по функции send читал? ну я тебе зацитирую из msdn:
send
The send function sends data on a connected socket.
Return Values
If no error occurs, send returns the total number of bytes sent, which can be less than the number indicated by len. Otherwise, a value of SOCKET_ERROR is returned, and a specific error code can be retrieved by calling WSAGetLastError.

советую обратить пристальнейшее внимание на текст, выделенный красным. так же советую КУПИТЬ (никаких пдф!!!) книгу "UNIX. Разработка сетевых приложений". Гарантирую, не пожалеешь ни копейки потраченных денег. Множество вопросов отпадет
vvviperrr вне форума Ответить с цитированием
Старый 07.07.2009, 14:58   #17
Артэс
Форумчанин
 
Регистрация: 05.06.2007
Сообщений: 529
По умолчанию

Ну вообще я пишу под Windows...

... получается создав сокет, приняв соединение, перед тем как послать данные я должен сделать что-то вроди этого?

Код:
iErrorCode = send(connection,a,1000,0);
if (iErrorCode == SOCKET_ERROR){
cout<< "Error";}
else{
cout<< "Send";
closesocket(connection);}
Артэс вне форума Ответить с цитированием
Старый 07.07.2009, 15:05   #18
vvviperrr
Тупой студент
Форумчанин
 
Аватар для vvviperrr
 
Регистрация: 12.05.2007
Сообщений: 614
По умолчанию

2Артэс какая разница, подо что ты пишешь, винсок там и там практически идентичен.

Цитата:
получается создав сокет, приняв соединение, перед тем как послать данные я должен сделать что-то вроди этого?
ты реализовал проверку на наличие ошибки, что описано во второй части дока. а то, что я специально выделил красным - ты проигнорил.
vvviperrr вне форума Ответить с цитированием
Старый 07.07.2009, 15:08   #19
Артэс
Форумчанин
 
Регистрация: 05.06.2007
Сообщений: 529
По умолчанию

Тогда покажи пожалуйста на примере, как реализовать и эту проверку?

(просто уж выяснить до конца, что бы вопросов не было, и завершить тему)

Последний раз редактировалось Артэс; 07.07.2009 в 15:16.
Артэс вне форума Ответить с цитированием
Старый 07.07.2009, 15:22   #20
vvviperrr
Тупой студент
Форумчанин
 
Аватар для vvviperrr
 
Регистрация: 12.05.2007
Сообщений: 614
По умолчанию

дам лишь алгоритм.

1. отправляем данные data размером size
2. если при отправке ошибка - известить юзера и выйти
3. иначе получить размер РЕАЛЬНО отправленных данных (real_size). (это и возвращает функция size, если не было ошибки)
4. елси real_size не равен size - запоминаем real_size и goto 1 (но отправляешь уже не data, а начиная от data[real_size], и размер не size, а size-real_size).
5. если real_size = size = были переданы все данные.

код я тебе из принципа не пишу, попробуй ка сам подумать и реализовать
vvviperrr вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск