Главная страница
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.025 c
1-25730
Kair
2004-02-25 10:32
2004.03.09
Определение размера директории


9-25677
Kost
2003-08-21 11:06
2004.03.09
Анимация


1-25821
Эли
2004-02-25 12:44
2004.03.09
Как получить текст из редактора другой программы


14-25890
Andryk
2004-02-16 11:49
2004.03.09
Пора учить китайский, а не английский :о)))


6-25852
Makhanev A.S.
2004-01-02 22:49
2004.03.09
Управление Internet Explorer ом...