2

我有一个小问题我有以下情况。

我编写了一个已经可以工作的服务器工具。不,我试图用 perl 测试它。因此,我编写了一个 startscript,它只是用于启动我需要进行测试的所有进程,以及单独的测试脚本。问题如下:在启动脚本中启动我的服务器之前,我必须启动我的 SOCAT prog。如何连接到 socat 进程并从我的测试脚本中输入一些内容?这可能吗?

好的,对于令人困惑的描述,我再次尝试:我有两个文件:一个在我的服务器上启动我的进程,另一个是用于将数据写入我的服务器进程的 socat 进程。我在这里也开始了其他必要的过程,但它们对于这个问题并不重要。第二个文件应该只是向 socat 进程写入一些内容,以便将其发送到服务器。如何连接到正在运行的socat进程(该进程必须在我的服务器进程启动之前启动。原因是服务器可以连接到socat)?

SHORT:我想连接或通过管道连接到 socat 进程,而不是连接到服务器,因为服务器已经连接到 socat?

我使用的是 UNIX 系统。

4

1 回答 1

0

像这样的东西:http ://www.thegeekstuff.com/2010/07/perl-tcp-udp-socket-programming/

#!/usr/bin/perl
#tcpclient.pl

use IO::Socket::INET;

# flush after every write
$| = 1;

my ($socket,$client_socket);

# creating object interface of IO::Socket::INET modules which internally creates
# socket, binds and connects to the TCP server running on the specific port.
$socket = new IO::Socket::INET (
PeerHost => '127.0.0.1',
PeerPort => '5000',
Proto => 'tcp',
) or die "ERROR in Socket Creation : $!\n";

print "TCP Connection Success.\n";

# read the socket data sent by server.
$data = <$socket>;
# we can also read from socket through recv()  in IO::Socket::INET
# $socket->recv($data,1024);
print "Received from Server : $data\n";

# write on the socket to server.
$data = "DATA from Client";
print $socket "$data\n";
# we can also send the data through IO::Socket::INET module,
# $socket->send($data);

sleep (10);
$socket->close();
于 2013-07-11T08:50:02.947 回答