相关疑难解决方法(0)

如何在Perl中接受多个TCP连接?

我的Linux Perl脚本有问题.它的主要目的是成为3个应用程序之间的中间人.该怎么做:

  1. 它应该能够等待UDP文本(没有空格) $udp_port
  2. 当它收到该UDP文本时,它应该将它转发到连接的TCP客户端

问题是我的应用程序当前工作,直到我第一次断开TCP客户端.然后我再也无法连接它了,它在接收到下一个UDP数据包后超时$udp_port.因此,基本上每当我想重新连接TCP时,我都必须重新启动应用程序.

所有这一切都应该尽可能快(每毫秒计数).发送到UDP或TCP的文本不包含空格.没有必要同时支持多个TCP客户端,但它肯定会有利:-)

这是我目前的代码:

#!/usr/bin/perl

use strict;
use warnings;
use IO::Socket;
use Net::hostent;
use threads;
use threads::shared;

my $tcp_port = "10008";  # connection from TCP Client
my $udp_port = "2099";  # connection from Announcer
my $udp_password = ""; # password from Announcer
my $title = "Middle Man server version 0.1";
my $tcp_sock = IO::Socket::INET->new( Proto => 'tcp', LocalPort => $tcp_port, Listen => SOMAXCONN,Reuse => 1)|| die @!;
my $udp_sock = new IO::Socket::INET(LocalPort => $udp_port, …
Run Code Online (Sandbox Code Playgroud)

linux perl multithreading udp tcp

5
推荐指数
3
解决办法
7676
查看次数

标签 统计

linux ×1

multithreading ×1

perl ×1

tcp ×1

udp ×1