Главная страница
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.013 c
14-25938
iudjen
2004-02-11 21:43
2004.03.09
алгаритм переводчиков


4-25967
amo
2004-01-04 15:45
2004.03.09
Почему в Win XP не работает EnumWindows


14-25881
Vitally
2004-02-16 03:48
2004.03.09
try...except и if then использовать надо


4-25964
uns
2004-01-01 22:36
2004.03.09
Контектное меню IE


14-25928
Домарощинер
2004-02-14 15:17
2004.03.09
Непонятные куки