![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
DxPlay (пересылка файлов) [Delphi, Windows]
Mr.Kirya © (2002-09-12 21:58:00)Нужно переслать по сети фаил.Для пересылки используется компонент 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....
Вроде бы все логично...не могу понять в чем ошибка:(
Mr.Kirya (2002-09-16 20:38:00) [1]Да я видед, видел.Сам чат это совершенно элементарно, а
вот пересылка файлов...
Drunken Cat (2002-09-16 00:00:00) [2]Наворотил, поэтому и не получается ;) На DelphGFX кажись есть пример работы с DXPlay. Пример обмена тестовыми сообщениями (чат, короче) посмотри...
Mr.Kirya (2002-09-15 12:08:00) [3]Блин, всеровно нифига не получается...я уже такого наворотил..
Пробовал побайтно пересылать и всеровно не получается:((
Ну делается же это как-то через DxPlay!?А как тогда в игрушках в которых сетевая игра сделана именно черех dxplay карты пересылают???
Mr.Kirya (2002-09-13 23:51:00) [4]Thanks за совет проверю.
Drunken Cat (2002-09-13 21:14:00) [5]Мдя... Ты бы всетки решил чего ты хочешь пересылать, файл, или всего лишь адресс ;) Ведь TextCode у тебя всего-лишь указатель :) Ради развлечения, попробуй посмотреть чему у тебя равен SizeOf( TDXFileMESSAGE ) думается будет равен 8 байтам. Может, коль уж начал так делать, будешь пересылать тот кусок на который указывает пропертя Memory? :) Вощем намудрил ты тут весьма... аж не знаю как :)))
Mr.Kirya (2002-09-13 17:44:00) [6]Да как бы на самом деле я чат пишу с использованием dxPlay.Tам у каждого юзверя должна быть своя картинка.Ее надо пересылать ко всем пользователям...вот:)А раз под dxplay, так и файлы с его помощью надо..
pasha676 (2002-09-13 09:19:00) [7]Я шизею, дорогая редакция. Нет не с самого текста, я в нем с утра не разберусь, а с подхода. Неужели чтобы переслать файл по сети нужно лезть в DirectX и DirectPlay? Как бы существуют API функции копирования файлов, через стримы можно, через сокеты в конце концов. А через ДиректХа - ну это редкостно оригинально конечно, но на фига?