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

Вниз

Ошибка при отправке сообщения   Найти похожие ветки 

 
Sergserg   (2002-07-18 12:15) [0]

Всем доброго времени суток. Сталкнулся с такой проблемой. Есть сервер есть клиент оба на компонентах Socket. На обоих віставлен тип stNonBlocking при отсілке сообщения с сервера клиенту к клиенту ничего не приходит. И если после этого дисканнектить клиент то на стороне сервера появляется ошибка Asynchronous Socket error 10054. Где могут быть грабли?

С уважением.


 
Digitman ©   (2002-07-18 12:38) [1]

Приведи фрагменты кода передатчика и приемника


 
Sergserg   (2002-07-18 12:44) [2]

Сервер
procedure TForm1.Button1Click(Sender: TObject);
begin
form1.ServerSocket1.Active:=true;
Form1.ListBox1.Items.Add("сервер загружен");
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
form1.ServerSocket1.Active:=false;
end;

procedure TForm1.Button2Click(Sender: TObject);
var i:byte;
begin

for i:=0 to Form1.ServerSocket1.Socket.ActiveConnections-1 do begin
Form1.ServerSocket1.Socket.Connections[i].SendText(form1.Edit1.Text);
form1.ListBox1.Items.Add(form1.Edit1.Text);
end;
end;

procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
Socket: TCustomWinSocket);
begin
form1.ListBox1.Items.Add(form1.ServerSocket1.Socket.ReceiveText);
end;

procedure TForm1.ServerSocket1ClientConnect(Sender: TObject;
Socket: TCustomWinSocket);
begin
form1.ListBox1.Items.Add("Соединение ОК");
end;

procedure TForm1.ServerSocket1ClientDisconnect(Sender: TObject;
Socket: TCustomWinSocket);
begin
form1.ListBox1.Items.Add("Рассоединение");
end;

end.


Клиент
procedure TForm1.Button1Click(Sender: TObject);

begin
form1.ClientSocket1.Open;
form1.ListBox1.Items.Add("Начало соединения");
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
form1.ClientSocket1.close;
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
form1.ClientSocket1.Socket.SendText("666666");
end;

procedure TForm1.ClientSocket1Read(Sender: TObject;
Socket: TCustomWinSocket);
begin
form1.ListBox1.Items.Add("ОК:"+form1.ClientSocket1.Socket.ReceiveText);
end;

procedure TForm1.ClientSocket1Connect(Sender: TObject;
Socket: TCustomWinSocket);
begin
Form1.ListBox1.Items.Add("Соединение установлено");
end;

procedure TForm1.ClientSocket1Disconnect(Sender: TObject;
Socket: TCustomWinSocket);
begin
Form1.ListBox1.Items.Add("Соединение разорвано");
end;

end.

С уважением.


 
Digitman ©   (2002-07-18 13:15) [3]

Вроде бы явных ошибок нет. Хотя есть и неявные, но о них пока не будем.

Ты хочешь сказать, что событие ClientSocket1Read никогда не возникает ?
В не зависимости от того, один раз ты нажал Button2 у сервера или несколько раз подряд ? После успешного коннекта, разумеется ?


 
Sergserg   (2002-07-18 15:37) [4]

Да именно так. Пичем указанная ошибка выбивается после отсоединения клиента. Стандартный пример с чатом из поставки работает нормально. Я уже второй день бьюсь и ничего...


С уважением.


 
Digitman ©   (2002-07-18 16:17) [5]

Что-то слабо верится в это.

Какие еще события и в каком точно порядке возникают согласно протоколу, который ты ведешь в ListBox1 ? Приведи дословно состояние списка.

Отладочные действия предпринимал ?
Точки останова расставлял в обработчиках ClientSocket1Read() и Button2Click() (форма сервера) ?
Какие точки останова достоверно отрабатывают и при каких условиях ?


исправь процедуру :

procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
Socket: TCustomWinSocket);
begin
form1.ListBox1.Items.Add(Socket.ReceiveText);
end;

хотя это к делу и не относится непосредственно, но, тем не менее - одной из ошибок меньше



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

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

Наверх




Память: 0.48 MB
Время: 0.017 c
1-73676
GGWIN
2002-09-10 18:41
2002.09.23
TStringList вложенный в TStringList


4-73941
Squ
2002-07-31 15:49
2002.09.23
Поиск и открытие (!) файла по маске


14-73824
Andrian
2002-08-23 15:43
2002.09.23
Коммерческий банк ищет программиста на Delphi 5 и Transact-SQL


1-73630
Alex_R
2002-09-12 14:04
2002.09.23
Где бы найти функцию для преобразовании строки в дату-время?


1-73678
andrew_f
2002-09-10 16:53
2002.09.23
Как избавиться от навязчивого мерцания?