crossplatform.ru

Здравствуйте, гость ( Вход | Регистрация )

> Сервер, чтение сокета
Zizilk
  опции профиля:
сообщение 28.7.2010, 22:27
Сообщение #1


Студент
*

Группа: Участник
Сообщений: 33
Регистрация: 26.7.2010
Пользователь №: 1902

Спасибо сказали: 0 раз(а)




Репутация:   0  


Имеется сервер.
Он должен получать данные от клиента написанного на PHP.
На сервере есть массив декрипторов подключённых сокетов.

Собственно вопрос...
Как организовать так, чтобы сервер пробегался по старым декрипторам из массива, получал данные, и в зависимости от них уже работал.
Я так понимаю делается это через бесконечный цикл, который управляется из паралельного потока?

Смотрел пример клиента но там больше подойдёт именно для клиентской части, где будет один сокет.


И ещё вопрос, как организовать чтение из сокета?
Если допустим с клиента на PHP передаются целые(пока) и дальше строковые значения?
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение
 
Начать новую тему
Ответов
Алексей1153
  опции профиля:
сообщение 30.7.2010, 21:23
Сообщение #2


фрилансер
******

Группа: Участник
Сообщений: 2933
Регистрация: 19.6.2010
Из: Обливион
Пользователь №: 1822

Спасибо сказали: 215 раз(а)




Репутация:   34  


Тут дело больше в том, что байты то ты можешь обрабатывать как хочешь, но для перевода в строковый вид тебе их надо сначала... перевести в строковый вид ))

например, массив содержит
unsigned char arr[]={0x00,0x00,0x11,0x22,0x33,0x44};


после форматирования в строку, содержимое последней должно быть, наприсер, таким

char* str="00 00 11 22 33 44";
//в байтовом представлении это
//unsigned char arr[]={0x30,0x30,0x20,  0x30,0x30,0x20,  0x31,0x31,0x20,
//        0x32,0x32,0x20,  0x33,0x33,0x20,  0x34,0x34,0x00};

ощущаешь разницу?

Сообщение отредактировал Алексей1153 - 30.7.2010, 21:26
Перейти в начало страницы
 
Быстрая цитата+Цитировать сообщение

Сообщений в этой теме
- Zizilk   Сервер, чтение сокета   28.7.2010, 22:27
- - Алексей1153   Обычно класс <какого-нибудь>сокета умеет себ...   29.7.2010, 18:24
- - Zizilk   да я уже нашёл такую возможность у QT через чигна...   30.7.2010, 17:38
- - Алексей1153   Ну, тут всё просто Char* str;//неинициализированна...   30.7.2010, 18:45
- - Zizilk   опечатался) пропустил строчку printf("Rec...   30.7.2010, 19:03
- - Алексей1153   Zizilk, а ты уверен, что оператор ">>...   30.7.2010, 19:27
- - Zizilk   Честно нет Я ещё не дошёл в книжке по С которую...   30.7.2010, 19:43
- - Алексей1153   Указатели - это переменные, которые хранят адрес о...   30.7.2010, 19:59
- - Zizilk   А как начать писать со следующего байта?) Затык с...   30.7.2010, 21:03
- - Алексей1153   Тут дело больше в том, что байты то ты можешь обра...   30.7.2010, 21:23
- - Zizilk   чего-то совсем запутался(... Просто пересылаю и...   30.7.2010, 22:12
- - Алексей1153   Цитата(Zizilk @ 31.7.2010, 1:12) Просто п...   30.7.2010, 22:31
- - Zizilk   Ничего не понятно. затык как раз с in, тк я пробов...   31.7.2010, 15:18
- - Алексей1153   в доке: Example (write binary data to a stream...   31.7.2010, 15:22
- - Zizilk   по нулям   31.7.2010, 15:28
- - Алексей1153   Что значит по нулям )) Содержимое "str" ...   31.7.2010, 15:34
- - Zizilk   a не делал, только со стр(там код фактически такой...   31.7.2010, 15:37
- - Алексей1153   Ну не знаю, у меня всё чётко прочиталось - строка ...   31.7.2010, 15:57
- - Zizilk   Я не знаю, может это изза того, что данные получаю...   31.7.2010, 18:56
- - Алексей1153   Наверное, там юникод, тогда символ может состоять ...   31.7.2010, 19:02
- - Zizilk   Исходник PHP в ansi кодировке, так что скорее всег...   31.7.2010, 19:32
- - Zizilk   Боюсь дело не в потоке, а в сокете... При поптыки ...   31.7.2010, 23:57
- - Алексей1153   Цитата(Zizilk @ 1.8.2010, 2:57) Я пытался...   1.8.2010, 10:30
- - Zizilk   в Char который там использовал пытался запихнуть с...   1.8.2010, 10:48


Быстрый ответОтветить в данную темуНачать новую тему
Теги
Нет тегов для показа


1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0




RSS Текстовая версия Сейчас: 1.12.2022, 16:47