Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Socket отправка команд на сервер, Проблема с отправкой команд 
V
    Опции темы
OutlawZ
  Дата 26.8.2008, 07:50 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Awaiting Authorisation
Сообщений: 269
Регистрация: 19.10.2007

Репутация: нет
Всего: нет



Привет всем, вот столкнулся с проблемой в написании клиента-сокета....дело в том что я не могу найти команду которая отправляет команды на сервер к примеру команду "help", на перле отправить команду легко:
Код

$socket->send("HELP");

А вот на билдере не как не могу, и только нашел команду для отправки сообщения на сервер и она не работает.....сам клиент работает....соединяется с сервером и получает от него ответ...а вот на посланные команды не реагирует...кто нить помогите с проблемой!


--------------------
user posted image
user posted image
PM MAIL   Вверх
leg501
Дата 26.8.2008, 08:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 31
Регистрация: 31.1.2008

Репутация: 1
Всего: 1




Код

//куданить повесить вызов
 &Socket->SendText("что угодно сюды");


void __fastcall TForm1::ClientSocket1Read(TObject *Sender,     
      TCustomWinSocket *Socket)
{
        Memo1->Lines->Add(Socket->ReceiveText()) ; //в мемо добавляем переданный текст
}




ps. попробую выложить старые свои пытания основаные на стандартном примере (если не работает то не бей сильно)
pss. а почему не используете инди 10 помойму тоже неплохо анаписаная библиотека для клиент-сервера (хотя я не привержениц агитировать что чтото лучше ,но в инди есть чтото поудобнее хотя и в сокете есть много чего полезного )

Присоединённый файл ( Кол-во скачиваний: 8 )
Присоединённый файл  olegmychat.rar 318,14 Kb
PM MAIL   Вверх
OutlawZ
Дата 26.8.2008, 08:31 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Awaiting Authorisation
Сообщений: 269
Регистрация: 19.10.2007

Репутация: нет
Всего: нет



Эм я делаю точно также код отправки:
Код

void __fastcall TForm1::Button4Click(TObject *Sender)
{
if (ClientSocket1->Active == true )
   {
     ClientSocket1->Socket->SendText(Edit3->Text);
     Memo1->Lines->Add("Отосланная команда:"+Edit3->Text);
   }
}

И пробую получить ответ:
Код

void __fastcall TForm1::ClientSocket1Read(TObject *Sender,
      TCustomWinSocket *Socket)
{
Memo1->Lines->Add(Socket->ReceiveText());
}

И все равно не работает smile

Это сообщение отредактировал(а) OutlawZ - 26.8.2008, 08:34


--------------------
user posted image
user posted image
PM MAIL   Вверх
leg501
Дата 26.8.2008, 08:39 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 31
Регистрация: 31.1.2008

Репутация: 1
Всего: 1



проверь открыт ли сам сокет   ServerSocket1->Active == true

еще вопрос одинаковые ли адреса , порты?
PM MAIL   Вверх
OutlawZ
Дата 26.8.2008, 08:59 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Awaiting Authorisation
Сообщений: 269
Регистрация: 19.10.2007

Репутация: нет
Всего: нет



Проверил все, адресса host и address совпадают так же как и порт!  ServerSocket1->Active == true открыт...ответ от сервера идет, но на команды все равно не реагирует!

Это сообщение отредактировал(а) OutlawZ - 26.8.2008, 09:05


--------------------
user posted image
user posted image
PM MAIL   Вверх
leg501
Дата 26.8.2008, 09:14 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 31
Регистрация: 31.1.2008

Репутация: 1
Всего: 1



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


Код

void __fastcall TForm1::ServerSocket1ClientConnect(TObject *Sender,  
      TCustomWinSocket *Socket)
{

  Socket->SendText("хело");
  
}


void __fastcall TForm1::ClientSocket1Read(TObject *Sender,TCustomWinSocket *Socket)
{
        Memo1->Lines->Add(Socket->ReceiveText()) ;
}

помойму так
и выложи свой проект (может дело в твоей машине или настройках каких но это наврядли)
PM MAIL   Вверх
OutlawZ
Дата 26.8.2008, 09:17 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Awaiting Authorisation
Сообщений: 269
Регистрация: 19.10.2007

Репутация: нет
Всего: нет



Дык проблема в том что при том как присоеденяюсь я получаю от сервера "сообщения приветсвия" smile а на посланные команды не реагирует!

Добавлено через 2 минуты и 36 секунд
Исходный код проекта:
Код

#include <vcl.h>
#pragma hdrstop

#include "Unit1.h"
//---------------------------------------------------------------------------
#pragma package(smart_init)
#pragma resource "*.dfm"
TForm1 *Form1;
//---------------------------------------------------------------------------
__fastcall TForm1::TForm1(TComponent* Owner)
        : TForm(Owner)
{
}
//---------------------------------------------------------------------------

void __fastcall TForm1::Button1Click(TObject *Sender)
{
Edit1->Text = ClientSocket1->Address;
Edit1->Text = ClientSocket1->Host;
ClientSocket1->Active = true;
}
//---------------------------------------------------------------------------

void __fastcall TForm1::ClientSocket1Connect(TObject *Sender,
      TCustomWinSocket *Socket)
{
Memo1->Lines->Add("Связь установлена");
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button3Click(TObject *Sender)
{
ClientSocket1->Active = false;
Memo1->Lines->Add("Вы отключились от сервера");
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ClientSocket1Error(TObject *Sender,
      TCustomWinSocket *Socket, TErrorEvent ErrorEvent, int &ErrorCode)
{
Memo1->Lines->Add("Ошибка, невозможно подключиться, проверьте правильность введенной информации");
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Button4Click(TObject *Sender)
{
if (ClientSocket1->Active == true )
   {
     ClientSocket1->Socket->SendText(Edit3->Text);
   }
}
//---------------------------------------------------------------------------
void __fastcall TForm1::ClientSocket1Read(TObject *Sender,
      TCustomWinSocket *Socket)
{
Memo1->Lines->Add(Socket->ReceiveText());
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Edit3MouseUp(TObject *Sender, TMouseButton Button,
      TShiftState Shift, int X, int Y)
{
Edit3->Clear();        
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Edit1MouseDown(TObject *Sender,
      TMouseButton Button, TShiftState Shift, int X, int Y)
{
Edit1->Clear();
}
//---------------------------------------------------------------------------
void __fastcall TForm1::Edit2MouseDown(TObject *Sender,
      TMouseButton Button, TShiftState Shift, int X, int Y)
{
Edit2->Clear();
}
//--------------------------------------------------------------



--------------------
user posted image
user posted image
PM MAIL   Вверх
leg501
Дата 26.8.2008, 09:30 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 31
Регистрация: 31.1.2008

Репутация: 1
Всего: 1



если это весь тексто то сервер и не будет реагировать на твои позывы лезт в инспектор событий и пиши обработчики на стороне сервера на конект/дисконект клиента,на получения сообщения,ну можно и ошибку  
PM MAIL   Вверх
OutlawZ
Дата 26.8.2008, 09:56 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Awaiting Authorisation
Сообщений: 269
Регистрация: 19.10.2007

Репутация: нет
Всего: нет



Если можно небольшой примерчик?  smile 


--------------------
user posted image
user posted image
PM MAIL   Вверх
leg501
Дата 26.8.2008, 10:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Новичок



Профиль
Группа: Участник
Сообщений: 31
Регистрация: 31.1.2008

Репутация: 1
Всего: 1



ммм ты скачал мой пример из первого поста там есть такие функции как 

Код

void __fastcall TForm1::ServerSocket1ClientConnect(TObject *Sender,   //Это когда вы сервер и к Вам присоединились
      TCustomWinSocket *Socket)



void __fastcall TForm1::ServerSocket1ClientRead(TObject *Sender, //обработчик сервера когда приходит чтото отклиента
      TCustomWinSocket *Socket)

PM MAIL   Вверх
OutlawZ
Дата 26.8.2008, 10:11 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Awaiting Authorisation
Сообщений: 269
Регистрация: 19.10.2007

Репутация: нет
Всего: нет



Точно спасибо......я то думал что просто тест smile)))))) 


--------------------
user posted image
user posted image
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "С++ Builder"
Rrader

Запрещается!

1. Публиковать ссылки на вскрытые компоненты

2. Обсуждать взлом компонентов и делиться вскрытыми компонентами

  • Литературу по С++ Builder обсуждаем здесь
  • Действия модераторов можно обсудить здесь
  • С просьбами о написании курсовой, реферата и т.п. обращаться сюда
  • Настоятельно рекомендуем заглянуть в DRKB (Delphi Russian Knowledge Base) - крупнейший в рунете сборник материалов по Дельфи


Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, Rrader.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | C++ Builder | Следующая тема »


 




[ Время генерации скрипта: 0.0512 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.