Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Сети";
Текущий архив: 2003.05.08;
Скачать: [xml.tar.bz2];

Вниз

Socket   Найти похожие ветки 

 
Kaginava   (2003-03-13 14:04) [0]

мастера подскажите, почему при попытке ClientSocket.socket.SendText("Текст") все время
выскакивает ошибка
"Asynchronous soket error 10053"

это в клиентском приложении, а в серверном

"WINDOWS SOKET ERROR:
Запрос на отправку или получение данных(when sending on a datagram socket using sendto call) no adress was suplied(10057) on API "recv""

перед этим нормально проходит соединение и на сервере фиксируется событие OnClientConnect, а при попытке передачи текста ничего не работает, подскажите в чем дело?
или это ошибка в ДНК :))?


 
Digitman   (2003-03-13 14:26) [1]

приводи код клиента и сервера


 
Kaginava   (2003-03-13 14:51) [2]



клиент:

procedure TForm1.Button1Click(Sender: TObject);
begin
if ClientSocket1.Active<>true then
ClientSocket1.Active:=true;
else
ClientSocket1.Active:=False;

end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
ClientSocket1.Close;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
try

ClientSocket1.Socket.SendText(Edit1.Text+#10);
except
MessageDlg("Не могу послать сообщение", mtWarning, [mbOK], 0);
end;
end;

procedure TForm1.ClientSocket1Connect(Sender: TObject;
Socket: TCustomWinSocket);
begin
MessageDlg("Соединились", mtWarning, [mbOK], 0);
end;


сервер:
procedure TForm1.Button1Click(Sender: TObject);
begin
ServerSocket1.Open;
MessageDlg("Открыли сервер", mtWarning, [mbOK], 0);
end;


procedure TForm1.ServerSocket1ClientConnect(Sender: TObject;
Socket: TCustomWinSocket);
begin
Memo1.Lines.Insert(0,"Подключился клиент");
end;

procedure TForm1.Button3Click(Sender: TObject);
begin
ClientSocket1.Close;
end;

procedure TForm1.ServerSocket1ClientDisconnect(Sender: TObject;
Socket: TCustomWinSocket);
begin

Memo1.Lines.Insert(0,"Отключился клиент");
end;

procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
Socket: TCustomWinSocket);
begin
memo1.Lines.Insert(0,ServerSocket1.Socket.ReceiveText);
end;


 
Digitman   (2003-03-13 15:08) [3]


клиент:

procedure TForm1.Button1Click(Sender: TObject);
begin
if not ClientSocket1.Active then
begin
ClientSocket1.Open;
while not ClientSocket1.Active do
Application.ProcessMessages;
end;
else
ClientSocket1.Close;

end;

procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
begin
ClientSocket1.Close;
end;

procedure TForm1.Button2Click(Sender: TObject);
begin
try
ClientSocket1.Socket.SendText(Edit1.Text+#10);
except
MessageDlg("Не могу послать сообщение", mtWarning, [mbOK], 0);
raise;
end;
end;

procedure TForm1.ClientSocket1Connect(Sender: TObject;
Socket: TCustomWinSocket);
begin
MessageDlg("Соединились", mtWarning, [mbOK], 0);
end;

сервер:

procedure TForm1.Button1Click(Sender: TObject);
begin
if not ServerSocket1.Active then
begin
ServerSocket1.Open;
MessageDlg("Открыли сервер", mtWarning, [mbOK], 0);
end
else
begin
ServerSocket1.Close;
MessageDlg("Закрыли сервер", mtWarning, [mbOK], 0);
end;
end;

procedure TForm1.ServerSocket1ClientConnect(Sender: TObject;
Socket: TCustomWinSocket);
begin
Memo1.Lines.Insert(0,"Подключился клиент");
end;

procedure TForm1.ServerSocket1ClientDisconnect(Sender: TObject;
Socket: TCustomWinSocket);
begin
Memo1.Lines.Insert(0,"Отключился клиент");
end;

procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
Socket: TCustomWinSocket);
begin
memo1.Lines.Insert(0, Socket.ReceiveText);
end;

p.s.

пример очень примитивен и будет работать (и то - через раз) ТОЛЬКО при определенных (ограниченных) условиях в лок.сети

реальная логика (надежно работающая в любых условиях в рамках глоб.сети ) гораздо сложней и укладывается далеко не в пару десятков строк


 
Kaginava   (2003-03-13 15:51) [4]

Спасибо.



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

Форум: "Сети";
Текущий архив: 2003.05.08;
Скачать: [xml.tar.bz2];

Наверх




Память: 0.45 MB
Время: 0.009 c
14-23372
olejka
2003-04-19 18:51
2003.05.08
Модифицированная тригонометрия для военных


1-23124
Leviathan
2003-04-26 18:43
2003.05.08
Разобрать интегер на байты


1-23215
Zirus
2003-04-25 09:44
2003.05.08
из array


9-22904
UNIVERSAL
2002-12-04 09:11
2003.05.08
3DS MAX 5.0


1-23140
Udjin
2003-04-28 11:47
2003.05.08
Что означает такое объявление переменной





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский