У меня есть этот код для отправки пакета на PHP, и я хотел бы знать, как это сделать в perl, я попытался отправить через шестнадцатеричные данные, но он не работает. Вот код PHP:PHP отправить пакет в perl
$sIPAddr = "37.221.175.211";
$iPort = 7777;
$sPacket = "";
$aIPAddr = explode('.', $sIPAddr);
$sPacket .= "SAMP";
$sPacket .= chr($aIPAddr[0]);
$sPacket .= chr($aIPAddr[1]);
$sPacket .= chr($aIPAddr[2]);
$sPacket .= chr($aIPAddr[3]);
$sPacket .= chr($iPort & 0xFF);
$sPacket .= chr($iPort >> 8 & 0xFF);
$sPacket .= 'c';
$rSocket = fsockopen('udp://'.$sIPAddr, $iPort, $iError, $sError, 2);
fwrite($rSocket, $sPacket);
fclose($rSocket);
Как я могу сделать это в Perl? Я также хочу использовать raw-сокет, чтобы отправить его.
Это то, что я пытался, но сервер не отвечает на него, что заставляет меня думать, что данные повреждены где-то:
$packet = Net::RawIP->new({
ip => {
saddr => $saddr,
daddr => $dest,
},
udp => {
source => $rsport,
dest => $port,
data => "\x53\x41\x4d\x50\x25\xdd\xaf\xd3\x61\x1e\x63", # this is the data from the PHP file in HEX
},
});
$packet->send;
Пожалуйста, покажите нам, что вы пробовали до сих пор. Вы сказали, что пытались отправить шестнадцатеричные данные. Вы делали это в Perl? Пожалуйста, отредактируйте свой вопрос, и давайте посмотрим код и объясним **, как ** он не работает. Также проверьте [ask]. – simbabque
@simbabque Извините, что, сделано! – user3180103
Комментарии в Perl: '#', а не '//'. Пожалуйста, не издевайтесь над кодом здесь, а отправляйте реальный код. Удалите вещи, которые вам не нравятся, чтобы посмотреть, но попытайтесь скомпилировать их. – simbabque