Как переслать файл через nonBlocking сокет - Файлы и Интернет - Интернет и сети в Delphi - Каталог статей - Mvi - развлечения
Пятница, 30.07.2010, 17:19
Музыка, видео, игры - MVI
Главная | Каталог статей | Регистрация | Вход
Меню сайта
Категории каталога
ASP [2]
BackDoor [4]
CGI и Cookies [21]
Dial-up [18]
E-mail [31]
FTP [2]
ICQ [11]
TCP/IP [22]
Telnet [2]
URL [8]
XML [16]
Браузер [101]
Интернет [26]
Компоненты и Интернет [22]
Почтовый клиент [15]
Протоколы [18]
Сетевые диски [6]
Сеть [38]
Сокеты [27]
Файлы и Интернет [18]
Мини-чат
Наш опрос
Какую музыку вы слушаете?
Всего ответов: 171
Главная » Статьи » Интернет и сети в Delphi » Файлы и Интернет

Как переслать файл через nonBlocking сокет
// а форме ServerSocket1, ClientSocket1 : (Active := False,
// Host := localhost, Port := 2001, xType := xNonBlocking),
// OpenDialog1, Button1, Memo1.

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

{--- Server ---}

procedure TfmMain.Button1Click(Sender: TObject);
var
sStream : TMemoryStream;
begin
sStream := TMemoryStream.Create;
if not OpenDialog1.Execute then
Exit;
sStream.LoadFromFile(OpenDialog1.FileName);
ServerSocket1.Socket.Connections[0].SendStreamThenDrop(sStream);
end;

{--- Client ---}

const
MAX_BUF_SIZE = $4095;

var
fStream: TFileStream;

{OnConnect}
procedure TfmMain.ClientSocket1Connect(Sender: TObject;
Socket: TCustomWinSocket);
begin
fStream:= TFileStream.Create('Receive.fil', fmCreate);
end;

{OnRead}
procedure TfmMain.ClientSocket1Read(Sender: TObject;
Socket: TCustomWinSocket);
var
count :Integer;
buffer: Array [0..MAX_BUF_SIZE] of Char;
begin
repeat
Socket.Lock;
count:= Socket.ReceiveBuf(buffer,SizeOf(buffer));
if count > 0 then
fStream.WriteBuffer(buffer,count);
Socket.Unlock;
until (count <= 0);

Memo1.Lines.Add(IntToStr(fStream.Size));
end;

{OnDisconnect}
procedure TfmMain.ClientSocket1Disconnect(Sender: TObject;
Socket: TCustomWinSocket);
begin
fStream.Free;
end;

Категория: Файлы и Интернет | Добавил: mvi (04.03.2009)
Просмотров: 158 | Рейтинг: 0.0/0 |
Всего комментариев: 0

При копировании материалов данного сайта, ссылка на него обязательна!

Имя *:
Email:
Код *:
Форма входа
E-mail:
Пароль:
Поиск
Друзья сайта
Анекдоты
Реклама
Статистика


Рейтинг@Mail.ru

Онлайн всего: 1
Гостей: 1
Пользователей: 0
Copyright MyCorp © 2010 Хостинг от uCoz