|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
06.07.2009, 23:24 | #11 |
Форумчанин
Регистрация: 05.06.2007
Сообщений: 529
|
Ну понятно. Т.е не зависимо, даже если флудеры будут флудить, настоящий пользователь полюбому "протиснется"? Просто тогда да, не тратить время на прием данных, а проверить IP и закрыть соединение / принять данные
|
06.07.2009, 23:59 | #12 |
Тупой студент
Форумчанин
Регистрация: 12.05.2007
Сообщений: 614
|
смотря как флудить будут, большая ли у тя очередь, довольно мощный ли комп/канал, чтобы он обрабатывал запросы из очереди быстрее, чем флудеры ее забивают.
|
07.07.2009, 11:48 | #13 |
Форумчанин
Регистрация: 05.06.2007
Сообщений: 529
|
Т.е этому подвержена практически любая программа, работающая в качестве сервера? Тут выход только лишь файрволлом блокировать IP адреса получается? ... с другой стороны, файрволлу тоже нужно принять данные и проверить IP адрес. Так где-же процесс проверки и блокировки будет проходить быстрее?
Последний раз редактировалось Артэс; 07.07.2009 в 12:26. |
07.07.2009, 12:51 | #14 |
Тупой студент
Форумчанин
Регистрация: 12.05.2007
Сообщений: 614
|
2Артэс ddos-у (denial access of service, атака отказа в обслуживании) подвержены абсолютно все сервера. у некоторых отказоустойчивость выше за счет мощного оборудования и широкого канала связи + используются разные политики безопасности (например, бан адресата, если он подключается к серверу 10 раз в секунду, для примера). я ничего не могу сказать вменяемого по данному вопросу, почитай какую нить литературу, ну хотя бы вот это http://www.i2r.ru/static/452/out_19122.shtml.
|
07.07.2009, 13:50 | #15 |
Форумчанин
Регистрация: 05.06.2007
Сообщений: 529
|
Спасибо. И тогда последний вопрос о сокетах в этой теме... я посылаю их способом send(connection,a,1000,0);. Т.е видно, кол-во посылаемых байт равно 1000. А если я посылаю 10000, то мне просто так и делать?
Код:
Почему я сомневаюсь - знаю что существует MTU - ограничитель посылаемых байтов, который около 1500. Или размер пакета. Я немного путаюсь, посему и спрашиваю, могу ли я смело посылать 10000 байт сразу за один раз? Последний раз редактировалось Артэс; 07.07.2009 в 14:01. |
07.07.2009, 14:28 | #16 | |
Тупой студент
Форумчанин
Регистрация: 12.05.2007
Сообщений: 614
|
2Артэс
Цитата:
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. Разработка сетевых приложений". Гарантирую, не пожалеешь ни копейки потраченных денег. Множество вопросов отпадет |
|
07.07.2009, 14:58 | #17 |
Форумчанин
Регистрация: 05.06.2007
Сообщений: 529
|
Ну вообще я пишу под Windows...
... получается создав сокет, приняв соединение, перед тем как послать данные я должен сделать что-то вроди этого? Код:
|
07.07.2009, 15:05 | #18 | |
Тупой студент
Форумчанин
Регистрация: 12.05.2007
Сообщений: 614
|
2Артэс какая разница, подо что ты пишешь, винсок там и там практически идентичен.
Цитата:
|
|
07.07.2009, 15:08 | #19 |
Форумчанин
Регистрация: 05.06.2007
Сообщений: 529
|
Тогда покажи пожалуйста на примере, как реализовать и эту проверку?
(просто уж выяснить до конца, что бы вопросов не было, и завершить тему) Последний раз редактировалось Артэс; 07.07.2009 в 15:16. |
07.07.2009, 15:22 | #20 |
Тупой студент
Форумчанин
Регистрация: 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 = были переданы все данные. код я тебе из принципа не пишу, попробуй ка сам подумать и реализовать |
|
Опции темы | Поиск в этой теме |