Форум: "Сети";
Текущий архив: 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.012 c