gpt4 book ai didi

perl - 向服务器发送消息并打印回复

转载 作者:可可西里 更新时间:2023-11-01 02:54:35 26 4
gpt4 key购买 nike

我正在做一个小任务,但卡在了一个步骤上。我已经成功地编写了一个小型 tcp 服务器/客户端,但我必须在我们的目录服务器中注册它。为此,我需要向 DS 发送一条消息,DS 将回复“200 Success”。

当我在终端中使用 telnet 执行此操作时,我连接到服务器,传递我的消息,终端吐回“200 成功”。现在,当我在 Perl 中执行此操作时,我(成功地)打开了一个套接字并将我的消息发送为(其中 $reg 是我的套接字名称)。

print $reg "Message goes here";

我尝试添加:

print <$reg>;

没有运气就得到服务器回复。我有点卡住了,因为我不确定如何取回这条消息,也不确定它是否正确发送。这是我的套接字,前面有前导子调用:

# Server registration
print &register . "\n";

sub register {
my $reg = IO::Socket::INET->new (
PeerHost => "server goes here",
PeerPort => port goes here,
Proto => $protocol
) or die "Failed to make socket for directory registration: $!\n";
print $reg "Register <my name> $ipaddr $port" . '\r'; #with required carriage return, this works in telnet too
my $msg = <$reg>;
print $msg;

最佳答案

问题是我的消息没有正确的语法。使用 telnet 时,我最后传递了\r,当我点击返回时,它添加了服务器需要的\n。在 Perl 中我只传递了\r。由于没有添加\n,也没有在我的键盘上输入返回键,服务器只是拒绝了该消息。

感谢那些帮助过我的人!

关于perl - 向服务器发送消息并打印回复,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22918462/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com