Карта сайта Интеллектуальная поисковая системаДобавить свою ссылку по ключевому запросуПоисковая система v3.kz поможет ускорить индексацию вашего сайта выводит в Топ |
|
Данные, прочитанные из сокета socket функцией socket_recv(), будут возвращены в параметре buf. I think you are invalidating the new sock-id on accept with incorrect braces : If ((clientSocket = accept(serverSocket, (SOCKADDR *)&clientaddr, &clientLen) == INVALID_SOCKET)). Начал разбираться с сокетами и в самом начале застрял на элементарном, с функциями send и recv, в програмке в которой сервер отправляет сообщения на клиент и там оно выводится на экран... Потом вызывается socket_recv для этих сокетов, и иногда она падает и рушит весь скрипт. Пробовал обрамллять socket_recv() try/catch конструкцией, но генерируется не исключение, а именно ошибка, которая попадает в мой error_handler. result = select (number_of_sockets, readable_sockets, writeable_sockets, error_sockets, max_time); Сокет для чтения (readable socket)содержит принятые данные, которые извлекаются программой при помощи стандартных вызовов recvили recvfrom.Сокет для записи... Дейтаграммный сокет так же может пользоваться функциями send и recv, если предварительно вызовет connect (см. "Клиент: шаг третий"), но у него есть и свои, "персональные", функции Потому как если recv не вернул 0 и не вернул SOCKET_ERROR, то он должен вернуть количество принятых байт, а их для этого надо послать. Делать это только для проверки "живости" сокета, я считаю, лишне. Changed in version 2.6: socket.error is now a child class of IOError. exception socket.herror¶. This exception is raised for address-related errors, i.e. for functions that use Возник вопрос с функцией recv, прием данных из сокета. В ней нужно указывать буфер и его размер, а как мне узнать сколько выделить памяти под буфер? Функция передачи данных send имеет три параметра - дескриптор сокета sock, на котором выполняется передача, адрес буфера buf Информация взята v3.kz |
загрузка...
|