LINUX.ORG.RU

Вопрос по Си. (продолжение)


0

0

Про "Системное программирование UNIX": вот файл примеров http://www.lib.ru/CTOTOR/C_IN_UNIX/12.1.c

Здесь следующие приколы: 1) connect() в качестве 2-го параметра должна получать struct sockaddr, а в демке ей дают struct sockaddr_in. При этом, эти две структуры РАЗНЫЕ. И gcc посылает куда подальше, если пытаться в connect() передать struct sockaddr_in... Пришлось делать через struct sockaddr. 2) При попытке взять чего-то из сокета или из ассоциированого с сокетом файла (fgetc, fgets, recv, read), прога виснет. Собственно, и вопрос-то - почему виснет???


Berkley socket, blocking read - ждем-с пока данные не придут. Проверять наличие данных poll/select. Потом read & co. (IMHO - информации мало)
Кто - там кричал что Линух современная операционная система?
Посмотри как она изнутри реализована и ужаснись - может потом у тебя отношение к Билли изменится.
Форум Development - тоже функционирует

anonymous
()

2anonymous (*) (2002-06-24 14:10:22.42): А ты пробовал писать программы на Borland Pascal 7.0 for Windows? Там с одними графическими контекстами траха было НЕМЕРЯННО. Я уж молчу про то, что в менюшках для отображения некоторых руских букв приходилось писать чего-то типа "\375". А уж как книжки по программингу под маздайку написаны - это вообще финиш... Маны читать куда как приятнее.
Так что не звезди - винда изнутри куда как хужее устроена.

P. S. А за инфу спасибо. :-)))

R00T
() автор топика

Толковая дока по работе с сокетами есть на openet
помоему оно - http://www.opennet.ru/docs/RUS/tcpip/netprg1.html
Но если честно, с сокетами на C первый и последний раз работал 2 года назад.
Там разбираться максимум час.

Nik
()

1) посмотри в sys/socket.h, как парамерт описан в прототипе, и все станет понятно :))

в принципе, описываешь переменную как

struct sockaddr_in *my_addr;

а при вызове

connect (sd, (struct sockaddr *) my_addr, sizeof (struct sockaddr));

и все проходит.

если нужен рабочий пример - пиши на мыло ananas at init.kiev.ua

ananas ★★★★★
()

2Nik: Ты тот самый Nik, который из Измайлово? :-)))
А про сокеты - да я разобрался уже. Мне интересно, почему прога виснет, когда из сокета пытаешься считать.

R00T
() автор топика

Mozilla 1.0 (сборка ALTLinux) и SVG

2R00T: Уже не из измайлово, но тот самый.

Nik
()

2Nik:
Как дела, Серега? :-)))
Скинь свое мыло на adline#pisem.net :-)))

R00T
() автор топика

Mozilla 1.0 (сборка ALTLinux) и SVG

2R00T: Лови

Nik
()

2R00T:

> А ты пробовал писать программы на Borland Pascal 7.0 for Windows?

Ай хуёва у рутов с логикой.... ;) Ну вот скажи, чел, почему если борланды сделали глюк - виноват мс?


p.s. А ты пробовал писать программы под ядро Linux 1.0 ? ;)

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.