Главная страница
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
1-25743
Александр1
2004-02-18 16:39
2004.03.09
Работа с Tray


3-25695
garry79
2004-02-07 12:18
2004.03.09
Как после вызова ХП обратиться к набору данных?


4-25972
MScorp
2004-01-03 00:20
2004.03.09
Принять WinPopup сообщение


4-25962
KrolikMaster
2004-01-02 00:41
2004.03.09
Эмуляция нажатия клавиши...


9-25676
Gayrus
2002-12-18 16:39
2004.03.09
Текст в OpenGL