我正在尝试编写一个perl客户端程序来连接到Java服务器应用程序(JDuplicate)。我发现java服务器使用DataInput.readUTF和DataInput.writeUTF方法,JDuplicate网站将其列为“Java的经过修改的UTF-8协议”。Perl客户端到Java服务器
我的测试程序是非常简单的,我试图发送客户端类型的数据,应该调用来自服务器的响应,但它只是超时:
#!/usr/bin/perl use strict; use Encode; use IO::Socket; my $remote = IO::Socket::INET->new( Proto => 'tcp', PeerAddr => 'localhost', PeerPort => '10421' ) or die "Cannot connect to server\n"; $|++; $remote->send(encode_utf8("CLIENTTYPE|JDSC#0.5.9#0.2")); while (<$remote>) { print $_,"\n"; } close($remote); exit(0);
我试过$的远程> send(pack(“U”,“...”));我试过“使用utf8;”,我试过binmode($ remote,“:utf8”),我试过发送纯ASCII文本,没有任何回应。
我可以看到使用tcpdump发送的数据,全部在一个数据包中,但服务器本身对它不做任何处理(除了数据包之外)。
有什么额外的我需要做以满足Java的“修改”的utf实现吗?
谢谢。
什么是Java代码? –