Форум: "Начинающим";
Текущий архив: 2006.12.03;
Скачать: [xml.tar.bz2];
ВнизПочему нет конекта ? Найти похожие ветки
← →
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;
Скачать: [xml.tar.bz2];
Память: 0.46 MB
Время: 0.068 c