Форум: "Сети";
Текущий архив: 2002.08.08;
Скачать: [xml.tar.bz2];
ВнизКак написать КлиентСокет на АПИ? Найти похожие ветки
← →
ss18 (2002-05-27 23:30) [0]Если у кого нибудь есть примерчик как это написать киньте плиз. Мучаюсь, ничего понять не могу.
← →
cyborg (2002-05-27 23:45) [1]ctrl держишь, нажимаешь например на sendtext и так далее и придёшь к тому что увидишь, что сокеты итак на АПИ написаны
← →
Digitman (2002-05-28 12:27) [2]>>ничего понять не могу
Что непонятно ? Конкретно ?
← →
ss18 (2002-05-28 15:12) [3]2Digitman ©
Конкретно: Как послать утп дейтаграму и принять ответ (тоже дайтагруму)?
← →
Digitman (2002-05-28 15:40) [4]замечательно ! конкретней некуда ) ...
вот тебе, соответственно, и столь же конкретные ответы на вопрос "как" :
sendto() - для передачи дейтаграммы
recvfrom() - для приема дейтаграммы
← →
ss18 (2002-05-28 18:20) [5]а когда нужно вызывать recvfrom()? В ютом собственно и проблема. Причем нужно чтобы разные потоки могли сделать это одновременно (послать и/или получить)...Как в таком случае?
← →
Digitman (2002-05-29 09:13) [6]recvfrom() нужно вызывать в контексте обработки события FD_READ, возникновение которого фиксирует факт наличия в буфере данных гнезда принятой дейтаграммы.
Разные потоки должны работать с разными гнездами. Нет никакого смысла в организации нескольких доп.потоков, конкурирующих за право доступа к одному и тому же гнезду по чтению-записи. Каждый же конкретный вызов recvfrom()/sendto() оперирует хендлом только одного (указанного в качестве параметра) гнезда.
Хотя ф-ции гнездового приема/передачи и являются threadsafe (содержат встоенный механизм мультипоточной синхронизации), злоупотреблять этим не следует и при мультипоточном доступе к этим ф-циям крайне желательно организовать собственный механизм синхронизации (используя critical section, mutex, semaphore e.t.c)
Страницы: 1 вся ветка
Форум: "Сети";
Текущий архив: 2002.08.08;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.007 c