我正在尝试将十六进制字符发送到套接字以指示新消息.此代码有效:
$socket->send("\x{0B}");
$socket->send($contents);
$socket->send("\x{1C}");
$socket->send("\x{0D}");
Run Code Online (Sandbox Code Playgroud)
但是,由于这发生在一个循环中,我需要变量十六进制字符,我还没弄清楚如何让它工作.这就是我尝试过的.
my $start_char = get(); # returns, for example 0B
my $end_char = get(); # 1C
my $end_seg = get(); #0D
$socket->send("\x{$start_char}");
$socket->send($contents);
$socket->send("\x{$end_char}");
$socket->send("\x{$end_seg}");
Run Code Online (Sandbox Code Playgroud)
我可以验证函数返回的变量在perl端是否正确,但服务器不接受它们作为有效字符.有关如何执行此操作的任何输入?
尝试...send( chr($start_char) );
等等(猜测get()
实际上是返回整数).如果它真的给你像"0B"这样的字符串,那么...send( chr(hex($start_chr)) );
归档时间: |
|
查看次数: |
2747 次 |
最近记录: |