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

Последнее сообщение от gamer777

  1. gamer777
    Сделал мир-чат без рупоров и убрал окно)
    Обновление статуса пользователя gamer777, 25 авг 2011
  2. gamer777
  3. gamer777
  4. gamer777
  5. gamer777
    Сообщение

    [Release] PW Chat

    как это было давно, когда я исходник выложил :D
    Сообщение от: gamer777, 26 мар 2011 в разделе: Архив
  6. gamer777
  7. gamer777
    UP!
    Сообщение от: gamer777, 23 мар 2011 в разделе: C/C++
  8. gamer777
  9. gamer777
  10. gamer777
  11. gamer777
  12. gamer777
  13. gamer777
    Почти все сделал, но есть один косяк: в начале строк (name,msg) идут 2 лишних байта (символ UTF-16) То ли это я туплю, толи не так пакую - хз: Вот правильный запрос (пойман сниффером): 80 85 28 01 00 00 00 00 22 08 74 00 65 00 73 00 74 00 18 48 00 65 00 6C 00 6C 00 6F 00 77 00 20 00 57 00 6F 00 72 00 6C 00 64 00 Вот мой запрос: 80 85 2C 01 00 00 00 00 22 0A FF FE 74 00 65 00 73 00 74 00 1A FF FE 48 00 65 00 6C 00 6C 00 6F 00 77 00 20 00 57 00 6F 00 72 00 6C 00 64 00 Вот мой php-код: <?php 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)); } $fp=fopen("/root/root.txt","w"); $address='10.0.2.15'; $port=29100; $sock=socket_create(AF_INET,SOCK_STREAM,SOL_TCP); $bind=socket_connect($sock,$address,$port); $id=strrev(pack("I",34)); $channel=cuint(1); $emotion=cuint(0); $name=iconv("UTF-8","UTF-16","test"); $msg=iconv("UTF-8","UTF-16","Hellow World"); $length=8+strlen($name.$msg); $length=pack("C",$length); $data=cuint(133).$length.$channel.$emotion.$id.strrev(pack("C",strlen($name))).$name.strrev(pack("C",strlen($msg))).$msg; $zapr=socket_send($sock,$data,8192,0); $otv=socket_recv($sock,$buf,8192,0); echo $data; fwrite($fp,$data); socket_close($sock); fclose($fp); ?> Как видите, у меня лишние байты FF FE ---------------------------------- Решил проблему. Надо конвертить в UTF-16L. Оказывается я поймал не тот пакет, а ID пакета - 78(h) P.S Спасибо MorzE
    Сообщение от: gamer777, 19 фев 2011 в разделе: PW Web
  14. gamer777
  15. gamer777