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

Вниз

Проблема с ClientSocket   Найти похожие ветки 

 
Mouse   (2003-12-30 17:09) [0]

Кинул на форму ClientSocket пару кнопок и Edit

Вот мой код:

procedure TForm1.ClientSocket1Connect(Sender: TObject;
Socket: TCustomWinSocket);
begin
Form1.Edit1.Text:="Connected";
end;

procedure TForm1.ClientSocket1Disconnect(Sender: TObject;
Socket: TCustomWinSocket);
begin
Form1.Edit1.Text:="Disconnected";
Form1.ClientSocket1.Active:=False;
end;

procedure TForm1.Button1Click(Sender: TObject);
begin
Form1.ClientSocket1.Active:=true;
end;

procedure TForm1.ClientSocket1Error(Sender: TObject;
Socket: TCustomWinSocket; ErrorEvent: TErrorEvent;
var ErrorCode: Integer);
begin
Form1.Edit1.Text:="Error";
Form1.ClientSocket1.Active:=false;
end;

procedure TForm1.ClientSocket1Connecting(Sender: TObject;
Socket: TCustomWinSocket);
begin
Form1.Edit1.Text:="trying to connecting";
end;


Adress: 127.0.0.1
Port: 12345

В итоге при нажатии кнопки Connect (Button1) У меня в Edit-е сначала пишеться trying to connecting (так и надо) а потом моя программа вылетает со следующей ошибкой:
"Project Client.exe raised exeption class ESocketError with message "Asynchronous socket error 10061". Process stopped"

Что ето может быть?

Ясное дело сервер у меня не запушен и я жду чтобы он просто в Edit написал Error, но я совсем не жду чтобы программа вылетала с ошибкой!

Помогите пожалуйста! Спасибо!


 
Rouse_ ©   (2003-12-30 17:13) [1]

procedure TForm1.ClientSocket1Error(Sender: TObject;
Socket: TCustomWinSocket; ErrorEvent: TErrorEvent;
var ErrorCode: Integer);
begin
Form1.Edit1.Text:="Error";
Form1.ClientSocket1.Active:=false;
ErrorCode := 0;
end;


Желаю успехов


 
Mouse   (2003-12-30 17:23) [2]


> Rouse_

Огромное спасибо - уже пишет просто Error в Edit-е!

У меня еще есть пару вопросов:

Где можно почитать про различные варианты ErrorCode! Желательно значение кода ошибки и его описание!

Чем отличаеться ClientSocket.Active:=true от ClientSocket.Open
а также сколько можно "открыть" сокетов с помошью СlientSocket.Open и как узнать сколько открыто?
Если я чушь несу - то обьясните пожалуйста в чем "чушь"!

Также я слышал что надо коннектиться к серверу с помошью блока try / exept... а как именно надо?

Заранее спасибо!


 
Fredericco ©   (2003-12-30 17:37) [3]

procedure TForm1.ClientSocket1Disconnect(Sender: TObject;
Socket: TCustomWinSocket);
begin
Form1.Edit1.Text:="Disconnected";
Form1.ClientSocket1.Active:=False;
end;

Лишнее


> Чем отличаеться ClientSocket.Active:=true от ClientSocket.Open

Результат один и тот же.


> а также сколько можно "открыть" сокетов с помошью СlientSocket.Open
>

65536
На каждый сокет свой объект TClientSocket.

Если выбран режим работы сокета ctNoBlocking, метод Open может вызвать исключение, если не возможно создать объект "сокет" (да поправит меня Digitman:-))

ЗЫ. С наступающим!

В данном примере, я бы использовал что-нить типа TMemo.Add, так как легче прослеживается последовательность событий.


 
Pat ©   (2003-12-30 21:01) [4]

>Где можно почитать про различные варианты ErrorCode
MS SDK Help Files\Windows Sicket 2 reference\Error Codes


 
SergP ©   (2003-12-31 21:05) [5]


> Где можно почитать про различные варианты ErrorCode


Да оно в принципе в хелпе у Д5 есть. Правда в Д6 почему-то его уже нет...



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

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

Наверх




Память: 0.48 MB
Время: 0.019 c
3-25692
lga
2004-02-11 15:57
2004.03.09
Ввод данных в поле типа TIME FB 1.5


7-25954
avv111
2003-12-20 22:47
2004.03.09
Событие при минимизации формы


1-25765
Брат
2004-02-26 15:18
2004.03.09
Немного математики


9-25679
Клочко Андрей
2002-08-10 13:44
2004.03.09
Алгоритм решения японского кроссворда


4-25959
Kinderr
2003-12-23 20:08
2004.03.09
SHEmptyRecycleBin