ANTICHAT.XYZ    VIDEO.ANTICHAT.XYZ    НОВЫЕ СООБЩЕНИЯ    ФОРУМ  
Баннер 1   Баннер 2
Antichat снова доступен.
Форум Antichat (Античат) возвращается и снова открыт для пользователей. Здесь обсуждаются безопасность, программирование, технологии и многое другое. Сообщество снова собирается вместе.
Новый адрес: forum.antichat.xyz
Вернуться   Форум АНТИЧАТ > Программирование > С/С++, C#, Delphi, .NET, Asm
   
Ответ
 
Опции темы Поиск в этой теме Опции просмотра

Socket под Lan
  #1  
Старый 25.02.2008, 04:39
~Lexx~
Участник форума
Регистрация: 30.09.2006
Сообщений: 165
Провел на форуме:
535407

Репутация: 57
Отправить сообщение для ~Lexx~ с помощью ICQ
По умолчанию Socket под Lan

Не подскажете как грамотнее организовать передачу файла по сетке? - файл небольшой но качаеться часто - 4 раза в секунду - посоветуйте как лучше сделать - использовать Sock_stream, Sock_dgram или Sock_raw? обмен идет с приложением, которое должно работать под Nt... Буду очень благодарен за совет
 
Ответить с цитированием

  #2  
Старый 25.02.2008, 09:59
zythar
Moderator - Level 7
Регистрация: 16.02.2008
Сообщений: 580
Провел на форуме:
1595333

Репутация: 291


Отправить сообщение для zythar с помощью ICQ
По умолчанию

на стороне сервера.
принимаем коннект. открываем файл. читаем из него. пишем в сокет.

на стороне клиента.
устанавливаем соединение. принимаем данные. создаем файл. пишем в него данные.

юзать нужно имхо sock_stream. хотя от того что ты конкретно юзаешь алгоритм не меняется. меняются только функции (насколько я знаю для сокет типа sock_dgram используются другие функции) . прочитай про каждый из типа сокетов и сам реши что нужно использовать.

Последний раз редактировалось zythar; 25.02.2008 в 10:02..
 
Ответить с цитированием

  #3  
Старый 25.02.2008, 13:05
~Lexx~
Участник форума
Регистрация: 30.09.2006
Сообщений: 165
Провел на форуме:
535407

Репутация: 57
Отправить сообщение для ~Lexx~ с помощью ICQ
По умолчанию

да функции изменяться - все это я уже разобрал. Другое дело - прога написанна -и она работает, просто нехватает канала... чуть чуть не хватает))) так вот я использовал sock_dgram... вот и подумалось мне не попробовать ли мне передавать сплошным потоком - не будет ли так меньше жрать канала? мот кто сталкивался с таким?
 
Ответить с цитированием

  #4  
Старый 25.02.2008, 13:10
zythar
Moderator - Level 7
Регистрация: 16.02.2008
Сообщений: 580
Провел на форуме:
1595333

Репутация: 291


Отправить сообщение для zythar с помощью ICQ
По умолчанию

хз.. я не сталкивался.. установи опытным путем ((*
попробуй сделать обеями способами ((*
 
Ответить с цитированием

  #5  
Старый 25.02.2008, 13:14
~Lexx~
Участник форума
Регистрация: 30.09.2006
Сообщений: 165
Провел на форуме:
535407

Репутация: 57
Отправить сообщение для ~Lexx~ с помощью ICQ
По умолчанию

Ну видать придеться))) спасибо за совет)
 
Ответить с цитированием

  #6  
Старый 25.02.2008, 16:17
Delimiter
Banned
Регистрация: 08.04.2005
Сообщений: 446
Провел на форуме:
2187381

Репутация: 518
По умолчанию

использовать UDP вместо TCP можно , но не забывай что юдп не является протоколом гарантированной доставки. Пакеты могут теряться может даже измениться порядок их следования (на кривых роутерах) , поэтому то что делают ACQ и SEQ в тсп протоколе ты должен реализовать сам, либо прикручивать как это делается в p2p к каждому фрагменту заголовок говорящий в какое место файла идет данный блок.

удачи!
хотя если ты сможешь весь файл посылать одним UDP , то это будет "бескровное" решение.

Последний раз редактировалось Delimiter; 25.02.2008 в 16:59..
 
Ответить с цитированием

  #7  
Старый 26.02.2008, 14:31
krypt3r
Познавший АНТИЧАТ
Регистрация: 27.04.2007
Сообщений: 1,044
Провел на форуме:
3660186

Репутация: 905


По умолчанию

А что, если вместе с файлом по удп отсылать его контрольную сумму? Хоть какая-то проверка на доставленность. Клиент просто проверяет вычисленную сумму полученного файла с суммой, пришедшей по удп от сервака. Если суммы равны, то все гуд, ежели нет, то...
 
Ответить с цитированием

  #8  
Старый 26.02.2008, 22:14
Delimiter
Banned
Регистрация: 08.04.2005
Сообщений: 446
Провел на форуме:
2187381

Репутация: 518
По умолчанию

да достоверности там и не могет быть..... не стремись получить ее, иначе придумаешь новый ТСР.
допустим в поле данных UDP есть твой собственный мини заголовок

[N фрагмента]данные

тогда

---> передача Id блока и количество фрагментов N
<--- подтверждение получения Id
---> передача пакета
--->
.......... в этом месте источник СТРЕЛЯЕТ N фрагментов как "из пушки"
--->
---> передача пакета
---> передача индентификатора конца блока
<--- блокid(-1) если все блоки дошли либо перечисление недошедших (2,28,39)
---> подтверждение корректировки
----------------------------------------------------------------И ПОВТОРЯЕТСЯ ПРИНЯТИЕ ПАКЕТОВ!!!
в любом случае если хочешь не утратить скорости UDP своди все на "бескотрольную" передачу UDP



по поводу контрольной суммы..... если ты отсылаешь пакет(файл одним пакетом) и он доходит ТО НЕ НУЖНО ПРОВЕРЯТЬ в целостности он или нет!!!! В спецификации UDP нет понятия фрагментации которая может "резануть" пакет (это чиста фича ТСР)

Последний раз редактировалось Delimiter; 26.02.2008 в 22:25..
 
Ответить с цитированием

  #9  
Старый 27.02.2008, 01:11
~Lexx~
Участник форума
Регистрация: 30.09.2006
Сообщений: 165
Провел на форуме:
535407

Репутация: 57
Отправить сообщение для ~Lexx~ с помощью ICQ
По умолчанию

В общем заработало - стал передавать сплошным потоком - сэкономил 3% трафика - этого мне хватило)) спасибо за советы.
 
Ответить с цитированием

  #10  
Старый 27.02.2008, 01:50
~Lexx~
Участник форума
Регистрация: 30.09.2006
Сообщений: 165
Провел на форуме:
535407

Репутация: 57
Отправить сообщение для ~Lexx~ с помощью ICQ
По умолчанию

Цитата:
Сообщение от Delimiter  
по поводу контрольной суммы..... если ты отсылаешь пакет(файл одним пакетом) и он доходит ТО НЕ НУЖНО ПРОВЕРЯТЬ в целостности он или нет!!!! В спецификации UDP нет понятия фрагментации которая может "резануть" пакет (это чиста фича ТСР)
Прости что ты имешь в виду? Насколько я знаю udp дейтаграмма содержит в своем заголовке чексумму.
 
Ответить с цитированием
Ответ



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
[для новичков]сетевое программирование на си под unix zythar Авторские статьи 14 27.05.2008 10:45
Настройка dosbox под *nix Ky3bMu4 Soft - *nix 0 20.02.2008 19:23
Windows 2008 procedure Windows 3 05.02.2008 09:49
Двойной вход под оним Uinом SilverStar ICQ 6 10.10.2005 02:53



Здесь присутствуют: 1 (пользователей: 0 , гостей: 1)
 


Быстрый переход




ANTICHAT.XYZ