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

Вниз

DxPlay (пересылка файлов)   Найти похожие ветки 

 
Mr.Kirya   (2002-09-12 21:58) [0]

Нужно переслать по сети фаил.Для пересылки используется компонент dxPlay.
Я пытаюсь реализовать это следующим образом:

const
DXFILE_MESSAGE=2;

type
TDXFileMessage = record
dwType: DWORD;
TextCode:TMemoryStream;
end;

procedure TMainForm.DXPlay1AddPlayer(Sender: TObject; Player: TDXPlayPlayer);
var
Msg2: ^TDXfileMESSAGE;
msgSize2: Integer;

begin

msgSize2:= SizeOf( TDXFileMESSAGE );
GetMem(Msg2, MsgSize2);

try
msg2.dwType := DXFile_MESSAGE;
msg2.TextCode.Create;
msg2.TextCode.LoadFromFile("images/user.bmp");
DXPlay1.SendMessage(DPID_ALLPLAYERS,msg2,msgsize2);

finally
FreeMem(Msg2);
msg2.TextCode.Free;
end;

end;

procedure TMainForm.DXPlay1Message(Sender: TObject; Player: TDXPlayPlayer; Data: Pointer;
DataSize: Integer);
begin
TDXFileMessage( Data^ ).textcode.SaveToFile("images/"+inttostr(Player.id)+".bmp");
end;



После запуска возникает ошибка - access violation at....
Вроде бы все логично...не могу понять в чем ошибка:(


 
pasha676   (2002-09-13 09:19) [1]

Я шизею, дорогая редакция. Нет не с самого текста, я в нем с утра не разберусь, а с подхода. Неужели чтобы переслать файл по сети нужно лезть в DirectX и DirectPlay? Как бы существуют API функции копирования файлов, через стримы можно, через сокеты в конце концов. А через ДиректХа - ну это редкостно оригинально конечно, но на фига?


 
Mr.Kirya   (2002-09-13 17:44) [2]

Да как бы на самом деле я чат пишу с использованием dxPlay.Tам у каждого юзверя должна быть своя картинка.Ее надо пересылать ко всем пользователям...вот:)А раз под dxplay, так и файлы с его помощью надо..


 
Drunken Cat   (2002-09-13 21:14) [3]

Мдя... Ты бы всетки решил чего ты хочешь пересылать, файл, или всего лишь адресс ;) Ведь TextCode у тебя всего-лишь указатель :) Ради развлечения, попробуй посмотреть чему у тебя равен SizeOf( TDXFileMESSAGE ) думается будет равен 8 байтам. Может, коль уж начал так делать, будешь пересылать тот кусок на который указывает пропертя Memory? :) Вощем намудрил ты тут весьма... аж не знаю как :)))


 
Mr.Kirya   (2002-09-13 23:51) [4]

Thanks за совет проверю.


 
Mr.Kirya   (2002-09-15 12:08) [5]

Блин, всеровно нифига не получается...я уже такого наворотил..
Пробовал побайтно пересылать и всеровно не получается:((
Ну делается же это как-то через DxPlay!?А как тогда в игрушках в которых сетевая игра сделана именно черех dxplay карты пересылают???


 
Drunken Cat   (2002-09-16 00:00) [6]

Наворотил, поэтому и не получается ;) На DelphGFX кажись есть пример работы с DXPlay. Пример обмена тестовыми сообщениями (чат, короче) посмотри...


 
Mr.Kirya   (2002-09-16 20:38) [7]

Да я видед, видел.Сам чат это совершенно элементарно, а
вот пересылка файлов...



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

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

Наверх




Память: 0.48 MB
Время: 0.016 c
1-63666
SONY
2003-02-12 08:57
2003.02.20
Как получить содержимое каталога ?


6-63716
NewGuest
2002-12-21 13:06
2003.02.20
UDPAntiFreeze


7-63883
Геннадий
2002-12-18 21:10
2003.02.20
TCheckBox - как изменить цвет галочки?


7-63877
Natalie
2002-12-05 06:58
2003.02.20
помогите, плиииииииииииз!!!!!!!!!!!!!!!


14-63740
kpo
2003-02-05 13:10
2003.02.20
Где