Форум: "Сети";
Текущий архив: 2004.03.09;
Скачать: [xml.tar.bz2];
ВнизПроблема с 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;
Скачать: [xml.tar.bz2];
Память: 0.45 MB
Время: 0.008 c