Вопросы и ответы - сокет

Вопросы и ответы - сокет



Есть ответ!
Есть задача создать модель сокетов, чисто в исследовательских целей (Так что вопросов зачем, и нафига лучше не задавать). Раз в файловой системе UNIX "Все есть файл", в том числе и сокеты, можно ли взглянуть на них? Из чего они состоят? Их структура и так далее, чтобы приблизиться к реальной модели, если я ошибаюсь в чем-то, то буду рад выслушать как оно на самом деле работает.
Есть ответ!
Здравствуйте, пишу чатик, начал с параллельного эхо-сервера. Теперь пытаюсь сделать так, чтобы сообщения от одного подключенного клиента рассылались всем подключенным клиентам. В процессе-родителе создаю сокет в файловом пространстве, и делаю его широковещательным: int commfd; struct sockaddr commaddr; if( ( commfd = socket( AF_UNIX, SOCK_DGRAM, 0 ) ) < 0 ) perror( "error in common s...
Есть ответ!
Всем добрый день! Уважаемые спецы, не могли бы вы уточнить для меня понятие промежуточной буфферизации в сети, а так же как она сказывается на количестве байт, считываемых из сокета. Возможна ли ситуация, когда клиент системным вызовом write() записывает в сокет, к примеру, 1024 байта, а вызов read() на сервере при чтении этого сокета так же ожидает 1024 байта, однако read() возвращает данные пор...
Есть ответ!
Написал такой кусочек кода: struct pollfd fds[1]; fds[0].fd = intf->fd; fds[0].events = POLLIN|POLLOUT; rc = poll(fds, 1, timeout); // произошло событие if(rc > 0){ if(fds[0].revents&(POLLERR|POLLHUP)){ rc = ErrorHandling; } else if(fds[0].revents&POLLIN){ // прием данных if((intf->RXBufCSize == 0) || (intf->RXBufCSize < BufCap)){ ...
Есть ответ!
Возможно, я не достаточно внимательно просмотрел стандрат, но я так и не нашел отдельной секции, в которой бы описывались допустимые семейства адресов и протоколы. В описании хедера netinet/in.h сказано, что последний должен содержать следующие константы, которые использутся как значения level (!) в функциях getsockopt/setsockopt: IPPROTO_IP IPPROTO_IPv6 IPPROTO_ICMP IPPROTO_RAW IPPROTO_TCP IPPR...
Есть ответ!
ОТВЕТ : Ошибку нашел. В методе Client::download() поменял строчку записи в файл с ofs<<buffer; на ofs.write(buffer, nBytesReceived); В первом случае запись в файл продолжалась только до первого нулевого символа в пачке данных, а во втором случае я явно указал, чтобы в файл записывалось именно nBytesReceived байт. Касательно зависания сервера: дело было в том, что у меня в функции отправки ...
Есть ответ!
Кусок кода создает сокет по определенному пути, должен туда записать определенные данные, которые в последствии будут эмулировать устройство bluetooth, с которого должны поступать данные. Просьба помочь с подключением, почему-то не коннектится. Ну и критику по поводу кода хотелось бы услышать. #include <stdio.h> #include <stdlib.h> #include <unistd.h> #include <sys/socket.h>...
Есть ответ!
В примерах кода вижу использование разных структур при инициализации сокетов: sockaddr_in и sockaddr_un. В описании функции bind указано, что The only purpose of this structure is to cast the structure pointer passed in addr in order to avoid compiler warnings. Есть ли реальное различие?
Есть ответ!
Всем добрый день! В процессе написания и отладки tcp-сервера столкнулась с несколько непонятным поведением программы : сервер не хотел работать после перезапуска. Нашла информацию, что рекомендуется во всех tcp-серверах перед вызовом функции bind() устанавливать параметр SO_REUSEADDR, так как возможны случаи, когда дочерние процессы продолжают висеть на обслуживании соединения, в то время как серв...


Закрыть X