Главная страница
    Top.Mail.Ru    Яндекс.Метрика
Форум: "Игры";
Текущий архив: 2003.02.20;
Скачать: [xml.tar.bz2];

Вниз

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;
Скачать: [xml.tar.bz2];

Наверх





Память: 0.46 MB
Время: 0.006 c
3-63564
Антон
2003-02-03 23:08
2003.02.20
Подскажите кто может


7-63861
mummi
2002-12-20 14:39
2003.02.20
Как открыть com-порт для W2000?


14-63835
shusha
2003-02-04 15:19
2003.02.20
Где найти компонент Icon


6-63707
wbc
2002-12-26 16:45
2003.02.20
Service написал и вставил ServerSocket - не откликается....


7-63860
SPIRIT
2002-12-19 21:23
2003.02.20
Определение системы





Afrikaans Albanian Arabic Armenian Azerbaijani Basque Belarusian Bulgarian Catalan Chinese (Simplified) Chinese (Traditional) Croatian Czech Danish Dutch English Estonian Filipino Finnish French
Galician Georgian German Greek Haitian Creole Hebrew Hindi Hungarian Icelandic Indonesian Irish Italian Japanese Korean Latvian Lithuanian Macedonian Malay Maltese Norwegian
Persian Polish Portuguese Romanian Russian Serbian Slovak Slovenian Spanish Swahili Swedish Thai Turkish Ukrainian Urdu Vietnamese Welsh Yiddish Bengali Bosnian
Cebuano Esperanto Gujarati Hausa Hmong Igbo Javanese Kannada Khmer Lao Latin Maori Marathi Mongolian Nepali Punjabi Somali Tamil Telugu Yoruba
Zulu
Английский Французский Немецкий Итальянский Португальский Русский Испанский