Russian Qt Forum

Qt => Работа с сетью => Тема начата: Anton от Март 11, 2006, 09:06



Название: клиент сервер qt 410
Отправлено: Anton от Март 11, 2006, 09:06
Необходимо от нескольких клиентов передавать данные серверу.В зависимости от содержимого данных, сервер реагирует по разному (например, прорисовывает разные примитивы,разного размера, цвета и т.д.) Как это сделать с помощью QTcpServer и QTcpSocket?Tckb можно, немного исходного кода


Название: клиент сервер qt 410
Отправлено: Dendy от Март 11, 2006, 14:31
QTcpServer/QTcpSocket предоставляет низкоуровневьІй интерфейс для асинхронной работьІ с сокетами. Грубо говоря - возможность отправлять/принимать байтьІ. А у тебя задача слишком вьІсокого уровня. ФорматьІ данньІх и механизм их разбора прийдётся придумьІвать самому.

Вообще сначала стоит полностью прочитать документацию по данньІм класам и посмотреть примерьІ.


Название: клиент сервер qt 410
Отправлено: Anton от Март 11, 2006, 14:46
Приведи пожалуйста пример передачи от клиента например, сообщения "client" а от сервера ответ "server"


Название: клиент сервер qt 410
Отправлено: Dendy от Март 11, 2006, 16:26
Код:
class Server : public QTcpServer
{
..
void incomingConnection( int sock )
{
  QTcpSocket * s = new QTcpSocket( this );
  s->setSocketDescriptor( sock );
  s->write( "server", 7 );
}
..
};

void SomeClass::someFunc()
{
  s = new QTcpSocket( this );
  connect( s, SIGNAL(connected()), SLOT(connected()) );
  s->connectToHost( "localhost", 1234 );
}

void SomeClass::connected()
{
  s->write( "client", 7 );
}


Название: Re: клиент сервер qt 410
Отправлено: sibmail от Апрель 01, 2009, 12:08
Код:
class Server : public QTcpServer
{
..
void incomingConnection( int sock )
{
  QTcpSocket * s = new QTcpSocket( this );
  s->setSocketDescriptor( sock );
  s->write( "server", 7 );
}
..
};

void SomeClass::someFunc()
{
  s = new QTcpSocket( this );
  connect( s, SIGNAL(connected()), SLOT(connected()) );
  s->connectToHost( "localhost", 1234 );
}

void SomeClass::connected()
{
  s->write( "client", 7 );
}

а вот чтение данных не подскажите как реализовать??