Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2006.12.03;
Скачать: CL | DM;

Вниз

Почему нет конекта ?   Найти похожие ветки 

 
KyRo   (2006-11-16 15:12) [0]

Подскажите почему я не могу подканектится .

Вот код

// Cоздаем клиент
    ClientIMg:=TClientSocket.Create(nil);
    ClientIMG.OnWrite:=ClientWrite;
    ClientIMG.OnError:=ClientError;
    ClientImg.OnConnect:=ClientConnect;
    Clientimg.ClientType:=ctNonBlocking;
    DelSpacesUn(ipclientIMG);
    Clientimg.Address:=ipclientIMG;
    Clientimg.Port:=50017;
   try
    Clientimg.Active:=True;
   Except
    ADOQUERY.Free;
    DBCONNECT.Free;
    Clientimg.Free;
    Result:=False;
    Exit;
   end;


Создаю  его  в нити  
Обработчик коннекта

procedure TImgLoadThread.ClientConnect(Sender: TObject;  Socket: TCustomWinSocket);
  begin
    if Clientimg.Socket.Connected
       then
         begin
          try
           Clientimg.Socket.SendText("LoadIm:"+IntToStr(LoadFile.Count-1)+":"+IntToStr(50020+StrToInt(Nomer)));
          Finally
           ClientImg.Socket.Close;
          end;
         end;
  end;


А вот так я объявляю этот обработчик


TImgLoadThread = class(TThread)
 private
   { Private declarations }
 protected
   procedure Execute; override;
   procedure ClientError(Sender: TObject; Socket: TCustomWinSocket ;ErrorEvent: TErrorEvent;
   var ErrorCode: Integer);
   procedure ClientWrite(Sender: TObject; Socket: TCustomWinSocket);
   procedure ServerClientError(Sender: TObject;Socket: TCustomWinSocket;
   ErrorEvent: TErrorEvent; var ErrorCode: Integer);
   procedure ServerClientRead(Sender: TObject;  Socket: TCustomWinSocket);
   procedure TimerServerWorkOnTimer(Sender: TObject);
   procedure ClientConnect(Sender: TObject;  Socket: TCustomWinSocket);
 public
    constructor Create(CreateSuspennded: Boolean; const NomHread:string);
 end;


Подскажите почему не происходит конект. и я не могу послать текст на сервер ?


 
Сергей М. ©   (2006-11-16 15:14) [1]


> Создаю  его  в нити


Из приведенного кода это вовсе не очевидно.


 
KyRo   (2006-11-16 15:29) [2]

В том то и дело что больше ничего нет.
Есть программа сервер который запущен 100 % на этом адресе и
порте 50017.

Есть два клиента один который лежит на форме и он работает если через него слать команды.Он конектится на этот же порт этого ай пи.

И есть второй клиент который я создаю в нити(Код выше). И вот  
когда я делаю
Clientimg.Active:=True;

То событие ClientImg.OnConnect:=ClientConnect; не происходит .
А если поставить BreakPoint на строке что идет после
Clientimg.Active:=True; то я вижу что он не стал True а остался в False.

Из за чего такое может случится ???


 
Сергей М. ©   (2006-11-17 08:26) [3]


> Из за чего такое может случится ???


Из-за отсутствия цикла ожидания/выборки/диспетчеризации оконных сообщений.


 
medved_68 ©   (2006-11-17 10:08) [4]


> И есть второй клиент который я создаю в нити(Код выше).
> И вот  
> когда я делаю
> Clientimg.Active:=True;
>
> То событие ClientImg.OnConnect:=ClientConnect; не происходит
> .

А что говорит по этому поводу сервер??? Точнее свойство Socket.ActiveConnections??? Оно при коннекте увеличивается на 1???


 
Сергей М. ©   (2006-11-17 10:10) [5]


> medved_68 ©   (17.11.06 10:08) [4]
>
>


> Оно при коннекте увеличивается на 1?


С какого перепугу оно увеличится ?
Цикла-то нет ...
При stNonBlocking на обработке оконных событий завязано абсолютно все, в т.ч. и состояние списка ActiveConnections



Страницы: 1 вся ветка

Текущий архив: 2006.12.03;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.117 c
2-1163482783
YurkaT
2006-11-14 08:39
2006.12.03
Сообщение, результата запроса, убрать


15-1163660330
DelphiLexx
2006-11-16 09:58
2006.12.03
Какой метод есть у DBGridEh a аналогичный TBDGrid.CalcTitleRight?


1-1161237851
_Mouse_
2006-10-19 10:04
2006.12.03
Проблема с TStringGrid


15-1163508842
Андрей Сенченко
2006-11-14 15:54
2006.12.03
DOC. Память для EXEC


2-1163743805
alex810
2006-11-17 09:10
2006.12.03
StringGrid событие DrawCell