1. Гость, мы просим Вас ознакомиться с Правилами Форума и Отказом от ответственности!

Результаты поиска

  1. wsok
  2. wsok
    Сообщение

    Открытие портов

    в общем суть проблемы такая, роутер asus rt-g32, не могу открыть порт 29000, открывал разными способами(TCP и тд) айпи адрес писал и виртуальной машины, и основного ПК, суть не изменилась, порт как был закрыт, так и остался, помогите, в чем может быть проблема? если нужны какие то определенные скрины скажите, я выложу [IMG] ну в принципе все правильно, но я думаю UDP протокол необходим для игрового порта. Вот как я сделал: [IMG] чтоб убедится, что виртуальная машина вообще в принципе доступна, хотя бы локально (за роутером) набери в браузере адрес вебсервера твоей машины, в моем случае это 192.168.0.32, в твоем случае другой локальный адрес у вебсервера. Если страничка вебсервера доступна, значит все норм, в пределах домашней сети все как надо. Остается лишь прокинуть порт с внешки на IP сервера к виртуальной машине. Попробуй для начала 80 порт прокинуть (протокол TCP) и обратись из внешки. Одно но, сам себе не сможешь обратится напрямую, используй прокси либо юзай в браузере хром ZENMATE расширение, которое меняет твою сеть на другую, с которой и сможешь обратиться на свой внешний IP ну или попроси друга, чтоб он обратился по указанному адресу. Если при обращении страничка видна, то все норм, если нет, значит пинай провайдера, чтоб выделил статический IP. Данная услуга обычно платная и может стоить в пределах 100 руб в месяц (бывает дороже или дешевле, зависит от провайдера). --- добавлено: 5 мар 2015 в 01:48 --- а насчет того, что провайдер запрещает открывать часть портов - истинный маразм, лучше от такого провайдера валить подальше.
    Сообщение от: wsok, 5 мар 2015 в разделе: Общее
  3. wsok
    Сообщение

    В чём же беда?

    [ATTACH]
    Сообщение от: wsok, 28 фев 2015 в разделе: Архив
  4. wsok
    Товарищ wsok предложил использовать его песочницу, но это не очень удобно как с физической, так и с моральной точки зрения, да и времени у меня мало. ну почему же с моральной? я не давлю морально на тебя и на себя не ощущаю этого )) Тебя все в скайпе нету, сам ведь обещал постучать, когда начнешь тестить в моей песочнице ) да и времени у меня мало так понимаю проект умирает? выкладывать всё как есть? Или же попытаться оттестировать самостоятельно? Или же может всё таки кто-нибудь согласиться стать тестером? Пару человек бы и проще стало бы жить. Ну если тут есть программисты, которые дружат с делфи и есть у них желание. --- добавлено: 27 фев 2015 в 19:14 --- насчет недостатка времени, понимаю, тоже есть такое у меня, но по мере свободного времени и выходных что то кодю ) Ну о совмещении хобби - это уже отдельный вопрос, сложно совмещать разные хобби. И программирование и фотодело и музыка (последним кстати вроде ТС и занмиается ещё)
    Сообщение от: wsok, 27 фев 2015 в разделе: PW Разработки
  5. wsok
  6. wsok
  7. wsok
    отвечу чуточку поразвернутее, дабы это поможет больше реализации сабжа. $rid = $_GET['rid']; function cuint($data) { if($data < 64) return strrev(pack("C", $data)); else if($data < 16384) return strrev(pack("S", ($data | 0x8000))); else if($data < 536870912) return strrev(pack("I", ($data | 0xC0000000))); return strrev(pack("c", -32) . pack("I", $data)); } $sock = socket_create(AF_INET, SOCK_STREAM, SOL_TCP); socket_connect($sock, "127.0.0.1", "29400"); $data = cuint(3013)."\x08\x80\x00\x00\x01".pack("N", $rid); $sbytes = socket_send($sock, $data, 8192, 0); $rbytes = socket_recv($sock, $buf, 8192, 0); $str = 13; $roleid = unpack( "N", substr( $buf, $str, 4 ) ); if($roleid[1] == 0){ echo ("Персонажа или аккаунта не существует!"); }else{ $str = $str+4; $namelarge = unpack( "c*", substr( $buf, $str, 1 ) ); $str = $str+1; $rolename = iconv( "UTF-16", "UTF-8", substr( $buf, $str, $namelarge[1] ) ); $str = $str+$namelarge[1]; $rolerace = unpack( "N", substr( $buf, $str, 4)); $str = $str+4; $rolecls = unpack ("N", substr($buf, $str, 4)); $str = $str+4; $rolegender = unpack("C", substr($buf, $str, 1)); $str = $str+3; $rolecustomdata = bin2hex(substr($buf,$str,172)); $str = $str+174; if($rolerace[1] == 0) { $roleconfigdata = bin2hex(substr($buf,$str,308)); $str = $str+308; }else{ $roleconfigdata = bin2hex(substr($buf,$str,322)); $str = $str+322; } $customstamp = unpack("N", substr($buf,$str,4)); $str = $str+4; $rolestatus = unpack("C", substr($buf,$str,1)); $str = $str+1; $roledeletetime = unpack("N", substr($buf,$str,4)); $str = $str+4; $rolecreatetime = unpack("N", substr($buf,$str,4)); $str = $str+4; $rolelastlogintime = unpack("N", substr($buf,$str,4)); $str = $str+6; $rolehelpstates = bin2hex(substr($buf,$str,54)); if($rolehelpstates[1] == 0){ $str = $str; }else{ $str = $str+54; } $rolereserved1 = unpack("N", substr($buf,$str,4)); $str = $str+4; $rolereserved2 = unpack("N", substr($buf,$str,4)); $str = $str+4; $rolereserved3 = unpack("N", substr($buf,$str,4)); $str = $str+4; echo ("ID - " .$roleid[1]. "</br>"); echo ("Nick - " .$rolename. "</br>"); echo ("Race - " .$rolerace[1]. "</br>"); echo ("Cls - " .$rolecls[1]. "</br>"); echo ("Gender - " .$rolegender[1]. "</br>"); echo ("Custom_data - " .$rolecustomdata. "</br>"); echo ("Config_data - " .$roleconfigdata. "</br>"); echo ("Custom_stamp - " .$customstamp[1]. "</br>"); echo ("Status - " .$rolestatus[1]. "</br>"); echo ("Delete_time - " .$roledeletetime[1]. "</br>"); echo ("Create_time - " .$rolecreatetime[1]. "</br>"); echo ("Lastlogin_time - " .$rolelastlogintime[1]. "</br>"); if($rolehelpstates[1] == 0){ }else{ echo ("Help_states - " .$rolehelpstates. "</br>"); } echo ("Reserved1 - " .$rolereserved1[1]. "</br>"); echo ("Reserved2 - " .$rolereserved2[1]. "</br>"); echo ("Reserved3 - " .$rolereserved3[1]. "</br>"); } socket_close($sock);
    Сообщение от: wsok, 20 фев 2015 в разделе: PW Вопросник
  8. wsok
  9. wsok
  10. wsok
  11. wsok
  12. wsok
    Ранее уже писали структуру type = struct GMember { unsigned int rid; char role; } type = struct GFactionInfo { unsigned int fid; Octets name; char level; GMember master; GetFactionDetail::GMemberVector member; Octets announce; Octets sysinfo; } Octets тоже по сути массив, из байт или символов. да я понял, просто вирав приводил пример структуры: 'fid'=>'int', 'name'=>'string', 'level'=>'byte', 'master'=>[ 'roleid'=>'int', 'role'=>'byte' ], 'member'=>[ 'roleid'=>'int', 'role'=>'byte' ], 'announce'=>'string', 'sysinfo'=>'octets' и там просто мастер и мембер указаны будто как векторы оба. --- добавлено: 16 фев 2015 в 21:34 --- вот и пытался понять, где собака порылась ) --- добавлено: 16 фев 2015 в 21:36 --- не понял суть вопроса ну мастер клана ведь один? Но в структуре пакета я вижу, что мастер клана указан как бы в массиве, будто их может быть более одного... Ну и вообще, в пакете этом ведь два массива, я не ошибаюсь? на мастеров и мемберов? Мастер один спс, а то уже хотел пытаться его в векторе декодировать ))
    Сообщение от: wsok, 16 фев 2015 в разделе: PHP
  13. wsok
  14. wsok
  15. wsok
  16. wsok
  17. wsok
  18. wsok
    ну на боевом 777 даю только тем файлам или папкам, который точно требуют этих прав. Если честно, подобные права нужны единицам файлов на игровом сервере (и то в большинстве случаев можно обойтись сменой владельца). ок, кстати не в курсе, пакет factionname кроме айди клана и его названия, что то ещё хранит в себе? Например айди мастера? А то параллельно рассматриваю возможность получения пакетом списка кланов, но к сожалению factioninfo, если ты читал ту тему требует распаривать ещё и вектор (вложенные массивы). Потому и подумал насчет factionname, удалось декодировать только айди клана и его имя, но там ещё вроде 4 байта, хз что они означают, но в айди мастеров кланов они не декодируются... --- добавлено: 16 фев 2015 в 09:36 --- $strlarge = unpack( "H", substr( $buf, 2, 1 ) ); if(substr($strlarge[1], 0, 1) == "8") { $start = 13; } else { $start = 12; } $clancount = unpack( "c", substr( $buf, $start, 2 ) ); $start = $start+2; for($c=0; $i<$clancount[1]; $i++) { $namelarge = unpack( "c*", substr( $buf, $start, 1 ) ); $start = $start+1; $clanname = iconv( "UTF-16", "UTF-8", substr( $buf, $start, $namelarge[1] ) ); $start = $start+$namelarge[1]; $clan2 = unpack( "C*", substr( $buf, $start, 4 ) ); $start = $start+4; $clan_id = unpack( "C*", substr( $buf, $start, 2 ) ); $start = $start+2; $clan_list .="<font color='red'>{$clanname} ID: $clan_id[1] | $clan2[1] | </font><hr>"; }
    Сообщение от: wsok, 16 фев 2015 в разделе: PHP
  19. wsok
  20. wsok