![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
Срочно, как отослать Stream нескольким пользователям (SreverSocke [D6, WinXP]
Morg © (2004-02-28 14:22:00)
for i:=0 to 5 do
begin
ServerSocket2.Socket.Connections[i].SendText(IntToStr(ms.Size) + #0);
ServerSocket2.Socket.Connections[i].SendStream(ms);
end;
Если делать так, программа выкидывает ошибку: Access violation at address 00000018. Read of address 00000018
Что делать? как отослать Stream нескольким соединениям сразу ?
TButton (2004-02-28 19:47:00) [1]значится так.
во-первых: ты уверен что у тебя есть 6 подключеных клиентов?
солюшен:
var
ms: TMemoryStream;
begin
ms:=TMemoryStream.Create;
ms.LoadFromFile('C:\img.jpeg');
if ServerSocket2.Socket.ActiveConnections>0 then
for i:=0 to ServerSocket2.Socket.ActiveConnections-1do
begin
if not ServerSocket2.Socket.Connections[i].Connected then Continue;
ServerSocket2.Socket.Connections[i].SendText(IntToStr(ms.Size) + #0);
ServerSocket2.Socket.Connections[i].SendStream(ms);
end;
ms.Free;
end;
выделеные куски можно использовать опционально... т.е. можно использовать, а можно не использовать.
Morg (2004-02-28 19:34:00) [2]
var
ms: TMemoryStream;
begin
ms:=TMemoryStream.Create;
ms.LoadFromFile('C:\img.jpeg');
for i:=0 to 5 do
begin
ServerSocket2.Socket.Connections[i].SendText(IntToStr(ms.Size) + #0);
ServerSocket2.Socket.Connections[i].SendStream(ms);
end;
ms.Free;
end;
TButton (2004-02-28 19:16:00) [3]а можно весь код... ну не совсем весь, а чтоб понятно было кто такой ms и что ты с ним делал.
Morg (2004-02-28 15:29:00) [4]Народ, help !!!!