管道运行socat过程,但这是怎么做到的?

时间:2013-07-11 07:57:42

标签: perl bash

我有一点问题我有以下情况。

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

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

简介:我想连接或管道到socat进程而不是服务器,因为服务器已连接到socat?

我正在使用UNIX系统。

1 个答案:

答案 0 :(得分: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();