第一支 perl 網路程式: SIP redirect server

這是 mfchang 老師 VoIP 的作業,因為懶惰用 st r系列的 function 處理 SIP message,就把腦筋動到 perl 上來了。

my $sock = IO::Socket::INET->new(LocalPort => $port, Proto => ‘udp’) || die “$@\r\n”;

my $sel = IO::Select->new($sock);

while($sel->can_read) {
 if((my $clisock = recv($sock, my $buffer, 1500, 0))) {
  send ($sock, $buffer, 0 ,$clisock);
 }
}

這樣就完成一個簡單的 udp echo server 了,是不是很簡單呢?

我們不用處理一堆惱人的endian,也不用處理 struct sockaddr_in,回傳訊息也變得相當的簡單, 加上有 regular expression 的加持,除了效率差之外,拿來寫作業真的很棒啊……。

另外 perldoc 是你的好朋友,我是靠著 google 大神硬幹寫完之後才知道。

詳細的 code 你可以在這邊取得,有什麼建議的話也請告訴我。

Leave a Reply

Your email address will not be published. Required fields are marked *