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

Вниз

Соединение TClientSocet и TServerSocet   Найти похожие ветки 

 
DelphiN! ©   (2003-11-14 19:09) [0]

Хочу понять технологию Client Server, но как всегда много загвоздок, вот откопал инфу:
unit Unit1;

interface

uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls, ExtCtrls, ScktComp;

type
TForm1 = class(TForm)
ClientSocket1: TClientSocket;
ServerSocket1: TServerSocket;
Image1: TImage;
Image2: TImage;
Button1: TButton;
Label1: TLabel;
Label2: TLabel;
procedure FormCreate(Sender: TObject);
procedure Image1Click(Sender: TObject);
procedure ClientSocket1Connect(Sender: TObject;
Socket: TCustomWinSocket);
procedure ServerSocket1ClientRead(Sender: TObject;
Socket: TCustomWinSocket);
procedure ClientSocket1Read(Sender: TObject; Socket: TCustomWinSocket);
procedure Button1Click(Sender: TObject);
private
Reciving: boolean;
DataSize: integer;
Data: TMemoryStream;
{ Private declarations }
public
{ Public declarations }
end;

var
Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Image1Click(Sender: TObject);
begin
ClientSocket1.Active:= true;
end;

procedure TForm1.FormCreate(Sender: TObject);
begin
ServerSocket1.Active:= true;
end;

procedure TForm1.ClientSocket1Connect(Sender: TObject;
Socket: TCustomWinSocket);
begin
Socket.SendText("send");
end;

procedure TForm1.ClientSocket1Read(Sender: TObject;
Socket: TCustomWinSocket);
var
s, sl: string;
begin
s:= Socket.ReceiveText;
if not Reciving then
begin
SetLength(sl, StrLen(PChar(s))+1); // +1 for the null terminator
StrLCopy(@sl[1], PChar(s), Length(sl)-1);
DataSize:= StrToInt(sl);
Data:= TMemoryStream.Create;

Delete(s, 1, Length(sl));
Reciving:= true;
end;
try
Data.Write(s[1], length(s));
if Data.Size = DataSize then
begin
Data.Position:= 0;
Image2.Picture.Bitmap.LoadFromStream(Data);
Data.Free;
Reciving:= false;
Socket.Close;
end;
except
Data.Free;
end;
end;

procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
Socket: TCustomWinSocket);
var
ms: TMemoryStream;
begin
if Socket.ReceiveText = "send" then
begin
ms:= TMemoryStream.Create;
try
Image1.Picture.Bitmap.SaveToStream(ms);
ms.Position:= 0;
Socket.SendText(IntToStr(ms.Size) + #0);
Socket.SendStream(ms);
except
ms.Free;
end;
end;
end;


При выполнении image1click вылетает динамическая ошибка "No adress specified", при установке свойств компонента
ClienSocket1.adress := "localhost";
ClientSocet1.host := "localhost";
Вылетает новая ошибка: "Asynchronous socket error 10049"
Что я делаю не так?

Цель программы вроде такая: при выполнении image1.click, image1.picture должно переслаться в image2.picture


 
Kotka ©   (2003-11-14 19:59) [1]

Нельзя писать ClienSocket1.adress := "localhost"; оно только для ип.
Попробуй указать вместо localhost свой ип.


 
DelphiN! ©   (2003-11-14 20:40) [2]

Тогда какой компонент лучше альтернативно использовать, для выполнения вышеуказанной задачи?


 
DelphiN! ©   (2003-11-14 20:59) [3]

Вобщем как мне любым альтернативным способом сделать вышеописанное


 
Silver Alex ©   (2003-11-14 21:29) [4]

Если хочешь могу на мыло скинуть пару примеров


 
DelphiN! ©   (2003-11-15 12:24) [5]

Удалено модератором
Примечание: Личная переписка


 
RoLeX ©   (2003-11-16 01:51) [6]


> Silver Alex © (14.11.03 21:29) [4]
> Если хочешь могу на мыло скинуть пару примеров

Скинь мне тоже - rolex5@yandex.ru


 
RoLeX ©   (2003-11-16 01:51) [7]


> Silver Alex © (14.11.03 21:29) [4]
> Если хочешь могу на мыло скинуть пару примеров

Скинь мне тоже - rolex5@yandex.ru


 
агличанен   (2003-11-16 05:37) [8]

Соединение ТКлиентСосет и ТСерверСосет.. "Классный" заголовок.


 
DelphiN! ©   (2003-11-16 20:18) [9]

Спасибо, я уже разобрался, я просто не указывал порт! его нужно ставить больше 1000, а свойство хост должно быть равно имени хоста, а если локальный хост - localhost

RoLeX © (16.11.03 01:51) [7]>
www.DelphiNsWorld.Narod.ru/Articles/Articles3/send_file_with_TCLIENTSOCKET_TSERVERSOCKET.htm

www.DelphiNsWorld.Narod.ru/Articles/Articles3/Send_file_with_socet_connect.htm

www.DelphiNsWorld.Narod.ru/Articles/chat_exemble_in_delphi_na_osnove_socetov_.htm

вот тебе примеры, но перед этим не забудь указать:
clientsocket1.host := "localhost";
clientsocket1.port := 1001; {именно в этом была моя загвоздка!!!}
ServerSocket.port := 1001; {и в этом тоже соответственно!}



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

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

Наверх




Память: 0.49 MB
Время: 0.033 c
1-49480
anbezr
2004-01-06 13:20
2004.01.16
непонятный глюк редактора.


3-49385
Rafe
2003-12-21 21:39
2004.01.16
Простой метод просчета сумм значений выделенных строк


1-49601
_hunter_
2004-01-05 12:02
2004.01.16
Как отключить автопрокрутку...


1-49605
k_len
2004-01-05 11:02
2004.01.16
ComboBox


1-49492
rimd
2004-01-03 19:10
2004.01.16
Окна