39dll(который раз...) - Проблема - решение. GML и прочее. - Разработка игр на Game Maker (Simple Mode) - Форум Game Maker. Разработка игр.
Здравствуй Гость | Перейти на сайт

Главная | Форум | Регистрация | Войти
gmaker.net ;) [ Новые сообщения · Участники · Правила форума · Поиск · RSS ]
Страница 1 из 11
Форум Game Maker. Разработка игр. » Разработка игр на Game Maker (Simple Mode) » Проблема - решение. GML и прочее. » 39dll(который раз...) (есть ли что-то в буффере)
39dll(который раз...)
3bl3gamer Дата: Среда, 04.08.2010, 23:22 | Сообщение # 1
Хоть палкой гони
Группа: Проверенные
Сообщений: 650
Статус: Offline
вот, допустим, есть клиент и сервер. клиент каждый шаг шлёт серву... ну пусть х-координату. сервер каждый шаг принимает эту координату. но вот серв по какой-то причине подвис слегка, и 2 координвты дошли одновременно.

код в степе серва:

Code
rm=receivemessage(index[i])
if (!rm) break
х=readbyte()

если я всё правильно понял, то receivemessage засунет обе координвты в буффер. сервер чтиает первую координату... а вторая так и остаётся непрочтитанной.
дак вот! можно ли узнать, осталось ли что-то ещё в буффере?

З.Ы.: это, конечно, простой пример, и тут можно проверить по кл-ву байт, принятых ресивом. а если клиент пожет прислать несколько типов сообщений(байт/несколько дробных координат/строку) и оно "слипнется"?..



Сообщение отредактировал 3bl3gamer - Среда, 04.08.2010, 23:22
 
WertyXBOCT Дата: Четверг, 05.08.2010, 00:18 | Сообщение # 2
Каждый 5й пост мой
Группа: Страж
Сообщений: 2467
Статус: Offline
Функция outBuffer(buf)
Code
var B,j,l,i;
B = dll39_buffer_create();
dll39_buffer_copy(B,argument0);
i = dll39_get_pos(true,argument0);
j = dll39_buffer_size(B)-1;
l = string(dll39_read_byte(B));
repeat (j) {l+=", "+string(dll39_read_byte(B));}
show_message("ÏÎÇ: "+string(i)+", ÄÎÏ: "+string(argument1)+'#'+l);
dll39_buffer_clear(B);

ну попробуй съэмулировать подобную ситуацию.

На самом деле ты неправ. Приходит два сообщения, отдельных. Просто сервер обрабатывает их подряд, за один проход.



Blog:www.WeslomPo.ru
mailto: i@weslompo.ru
 
3bl3gamer Дата: Четверг, 05.08.2010, 18:06 | Сообщение # 3
Хоть палкой гони
Группа: Проверенные
Сообщений: 650
Статус: Offline
эээ... а для чего это?
 
WertyXBOCT Дата: Четверг, 05.08.2010, 23:37 | Сообщение # 4
Каждый 5й пост мой
Группа: Страж
Сообщений: 2467
Статус: Offline
Аргх. Это для вывода содержимого буфера. Аргумент - буфер.


Blog:www.WeslomPo.ru
mailto: i@weslompo.ru
 
Форум Game Maker. Разработка игр. » Разработка игр на Game Maker (Simple Mode) » Проблема - решение. GML и прочее. » 39dll(который раз...) (есть ли что-то в буффере)
Страница 1 из 11
Поиск:



Сообщество Gmaker.SU 2005-2012
Используются технологии uCoz
Простой вход