Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Последние темы форума

Показать новые сообщения »

Почтовая рассылка

Подписчиков: 6314
Последний выпуск: 19.06.2015

Сетевое приложение

37K
08 сентября 2010 года
qbikk
40 / / 08.09.2010
всем привет! дали задание: программа должна принимать все udp пакеты с порта и ip первоначально заданных с консоли.... реализовать надо на unix системе... никогда не занимался програмированием сетевых приложением... ах да, язык Си .. даже не представляю откуда руки растут... подскажити ллитературу или примерно в какой области надо копаться? Заранее спасибо :)
2
09 сентября 2010 года
squirL
5.6K / / 13.08.2003
http://www.piter.com/book.phtml?978594723991
42K
11 сентября 2010 года
coirius
73 / / 21.07.2010
Могу посоветовать книгу Кернигина и Ритчи "Язык программирования Си". и Полистать мануалы на данную тематику. Это все реализуемо т.е. нет ничего невозможного ...
http://khpi-iip.mipk.kharkiv.edu/library/pgm/kr/index.html
239
13 сентября 2010 года
aks
2.5K / / 14.07.2006
Керриган и Ритчи тут немного побоку. squirL правильную книжку советует. =)
42K
14 сентября 2010 года
coirius
73 / / 21.07.2010
основы ведь тоже нужно знать ...
239
14 сентября 2010 года
aks
2.5K / / 14.07.2006
Блин, если человек собирается писать сетевое приложение на C - само собой подразумевается, что C он знает.
А то с таким же успехом можно и букварь порекомендовать - основы же надо знать. =)
1
14 сентября 2010 года
kot_
7.3K / / 20.01.2000
Цитата: aks
Блин, если человек собирается писать сетевое приложение на C - само собой подразумевается, что C он знает.
А то с таким же успехом можно и букварь порекомендовать - основы же надо знать. =)


ну вообщето как раз таки с основами у человека проблемы,

Цитата:
язык Си .. даже не представляю откуда руки растут


так что рекомендация чтить K&R вполне соотвествует.

37K
15 сентября 2010 года
qbikk
40 / / 08.09.2010
Всем спасибо!)) еще ношел книжки: Йон Снейдер "эффективное программирование TCP/IP" и Вейрле, Пэльке "Структура и реализация сетевых протоколов в ядре" ... все вместе очень круто) еще раз спс за Стивенсона, отличная книга, вот только третьего издание ни где не нашел.... но и второе тоже отлично помогает освоить)
2
18 сентября 2010 года
squirL
5.6K / / 13.08.2003
Цитата: qbikk
Всем спасибо!)) еще ношел книжки: Йон Снейдер "эффективное программирование TCP/IP" и Вейрле, Пэльке "Структура и реализация сетевых протоколов в ядре" ... все вместе очень круто) еще раз спс за Стивенсона, отличная книга, вот только третьего издание ни где не нашел.... но и второе тоже отлично помогает освоить)



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

244
18 сентября 2010 года
~ArchimeD~
1.4K / / 24.07.2006
я кстати давно и страстно желаю 3е издание. kot_, движется процесс? :)
2
18 сентября 2010 года
squirL
5.6K / / 13.08.2003
а не проще его уже купить?
1
18 сентября 2010 года
kot_
7.3K / / 20.01.2000
Цитата: ~ArchimeD~
я кстати давно и страстно желаю 3е издание. kot_, движется процесс? :)


Да. наследующей неделе в пятницу выложу еще как минимум 10 глав.

239
18 сентября 2010 года
aks
2.5K / / 14.07.2006
~ArchimeD~
Цитата: squirL
а не проще его уже купить?

37K
24 сентября 2010 года
qbikk
40 / / 08.09.2010
вопрос, может кто знает ( вполне возможно что не по теме но не важно))
сетевое приложение под unix как следовало ожидать)
надо мол по udp получать сообщения и с ними чет делать, не важно
сообщение состоит из шапки и строки переменной длины (в каждом сообщение разное)... в шапке передается размер всего сообщения, ну а размер шапки постоянен...
ну так вот, яя создаю сокет, принимаю с помощью команды recvfrom() шапку, т.е. в параметре размер буфера получения ставлю размер шапки... потом смотрю в оной размер всего сообщ и с помощью не хитрых операций выясняю размер строки... потом (как я предпологал) опять обращаюсь к recvfrom() и в рразмере буфера на получение ставлю этот вычесленный размер... но когда я повторно обращаюсь к recvfrom как будто сообщения и не было и она ждет получения сообщ.... в чем трабла? у меня появилось предположение что после первого обращения все сообщение стирается из буфера... но проверить его никак не могу)
заранее благодарен)
239
25 сентября 2010 года
aks
2.5K / / 14.07.2006
А можно кода кусок, где происходит получение и отправка данных. Чтобы не гадать без толку.
37K
26 сентября 2010 года
qbikk
40 / / 08.09.2010
а я уже разобрался)
if ( ( k =recvfrom( s, &data, HEAD_SIZE , MSG_PEEK, (struct sockaddr * ) c_addr, &len ) ) < 0 )
{
printf("%s: recvfrom err\n", pr_name);
return 2;
}

if ( k < ( data.len ) )
{
if ( ( l = recvfrom( s, data.param, ( data.len - HEAD_SIZE + 4 ) , 0, (struct sockaddr * ) c_addr, &len ) ) < 0 )
{
printf("%s: recvfrom err\n", pr_name);
return 2;
}
}
как я понял, параметр MSG_PEEK как раз и говорит о том что не надо удалять все сообщение... во всех книгах это опускается и говориться что мол ставьте 0 и вссе будет норм) а есле вместо MSG_PEEK будет стоять 0 то после первого обращения все сообщение удаляется з буфера сокета... на сколько я понял.. ну покрайней мере так все работает)

Знаете кого-то, кто может ответить? Поделитесь с ним ссылкой.

Ваш ответ

Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог