Сервер, чтение сокета |
Здравствуйте, гость ( Вход | Регистрация )
Сервер, чтение сокета |
Zizilk |
28.7.2010, 22:27
Сообщение
#1
|
Студент Группа: Участник Сообщений: 33 Регистрация: 26.7.2010 Пользователь №: 1902 Спасибо сказали: 0 раз(а) Репутация: 0 |
Имеется сервер.
Он должен получать данные от клиента написанного на PHP. На сервере есть массив декрипторов подключённых сокетов. Собственно вопрос... Как организовать так, чтобы сервер пробегался по старым декрипторам из массива, получал данные, и в зависимости от них уже работал. Я так понимаю делается это через бесконечный цикл, который управляется из паралельного потока? Смотрел пример клиента но там больше подойдёт именно для клиентской части, где будет один сокет. И ещё вопрос, как организовать чтение из сокета? Если допустим с клиента на PHP передаются целые(пока) и дальше строковые значения? |
|
|
Алексей1153 |
30.7.2010, 19:59
Сообщение
#2
|
фрилансер Группа: Участник Сообщений: 2941 Регистрация: 19.6.2010 Из: Обливион Пользователь №: 1822 Спасибо сказали: 215 раз(а) Репутация: 34 |
Указатели - это переменные, которые хранят адрес оперативной памяти
Ты объявил указатель str , но не инициализировал ничем, там сейчас "мусор", то есть адрес невалидный. Вообще, возьми за правило инициализировать указатель нулём, если сразу нечем больше инициализировать Char* str=0; Когда указатель равен нулю, в дебаге легко поймать некорректное использование указателя. Для класса QDataStream есть оператор
Он принимает ссылку на указатель на char. То есть, судя по описанию, там действительно выделяется память из кучи, и ещё тебе надо потом удалить память обратно в кучу не забыть.
То есть, ты всё правильно вызвал то. Значит, дело в содержимом in - копай ) Например, первый байт в потоке - 0x00, тогда строка будет выглядеть для printf пустой Сообщение отредактировал Алексей1153 - 30.7.2010, 20:04 |
|
|
Текстовая версия | Сейчас: 1.12.2024, 15:22 |