PHP:
<?php
$host = '127.0.0.1';
$port = 29300;
function socketsend($data, $ip,$port)
{
if(!@$sock=socket_create(AF_INET, SOCK_STREAM, SOL_TCP))
{throw new Exception("Не удалось связать сокет"); exit();}
socket_connect($sock,$ip,$port);
socket_set_block($sock);
socket_send($sock, $data, 8192, 0);
socket_recv($sock, $buf, 8192, 0);
socket_set_nonblock($sock);
socket_close($sock);
return $buf;
}
function cuint($data)
{
if($data < 128)
return pack('C', $data);
else if($data < 16384)
return pack('n', ($data | 0x8000));
else if($data < 536870912)
return pack('N', ($data | 0xC0000000));
return pack('C', 224) . pack('N', $data);
}
function PackString($data)
{
$data = iconv("UTF-8", "UTF-16LE", $data);
return cuint(strlen($data)).$data;
}
function PackOctet($data)
{
$data = pack('H*', $data);
return cuint(strlen($data)).$data;
}
function PackLong($data)
{
$left = 0xffffffff00000000;
$right = 0x00000000ffffffff;
$l = ($data & $left) >> 32;
$r = $data & $right;
$res = pack('N*', $l, $r);
return $res;
}
function gameChat($user, $msg, $chan, $host, $port)
{
$System = pack('C*',$chan);
$Emotion = pack('C*',0);
$show_param = pack('C*',0);
$Char = PackLong($user);
$Message = PackString($msg);
$data = PackOctet('');
$Packet = $System.$Emotion.$show_param.$Char.$Message.$data;
$Data = cuint(120).cuint(strlen($Packet)).$Packet;
socketsend($Data, $host,$port);
}
$page = <<<HTML
<FORM METHOD=POST>
<select name=chanel>
<option value=0>Общий</option>
<option value=1>Мир</option>
<option value=2>Отряд</option>
<option value=3>Гильдия</option>
<option value=4>Личные сообщения</option>
<option value=5>Урон</option>
<option value=6>Поход</option>
<option value=7>Задание</option>
<option value=8>Оповещения</option>
<option value=9>Системный</option>
<option value=11>Легион</option>
<option value=12>Поход</option>
</select>
<input name="user" type="text" placeholder="Id персонажа с которого будет отправлено сообщение">
<input name="msg" type="text" placeholder="Текст сообщения">
<input name="submit" type=submit value="Отправить">
</FORM>
HTML;
echo $page;
if (isset($_POST['submit']))
{
gameChat($_POST['user'], $_POST['msg'], $_POST['chanel'], $host, $port);
}
Пример работы: