加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

Perl Socket example

发布时间:2020-12-16 00:34:02 所属栏目:大数据 来源:网络整理
导读:Server Coding: #!/usr/bin/perl # unix_socket_server.pl use strict; use warnings; use Socket; print "Server Started.n"; my $AF_UNIX = 1; my $SOCK_STREAM = 1; my $PROTOCOL = 0; socket(SERVERSOCKET,$AF_UNIX,$SOCK_STREAM,$PROTOCOL) || die"Soc
Server Coding:

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

use strict;
use warnings;

use Socket;

print "Server Started.n";
my $AF_UNIX = 1;
my $SOCK_STREAM = 1;
my $PROTOCOL = 0;
socket(SERVERSOCKET,$AF_UNIX,$SOCK_STREAM,$PROTOCOL) || die"Socket $!n";
print "Socket OKn";

my $name = "./.mysock";
unlink "$name" || warn "$name: $!n";

bind(SERVERSOCKET,sockaddr_un($name)) || die "Bind$!n";
print "Bind OKn";

listen(SERVERSOCKET,5) || die "Listen $!n";
print "Listen OKn";

while(1) {
? ? accept(NEWSOCKET,SERVERSOCKET)|| die "Accept $!n";
? ? defined(my $pid = fork) ||die "Fork: $!n";
? ? if ($pid == 0) {
# ? print(NEWSOCKET "Greetings from yourserver !!n");

? ? ? open(FILE,"input.txt") || die "can not openinput.txt:$!n";
? ? ? my@content = <FILE>;
? ? ? print"@contentn";
? ? ? close(FILE);

? ? ? print(NEWSOCKET @content);

? ? ? close(NEWSOCKET);
? ? ? exit(0);
? ? }
? ? else {
? ? ? close(NEWSOCKET);
? ? }
}

Client Coding:

#!/usr/bin/perl

use strict;
use warnings;

use Socket;
print "Hi I'm the clientn";
my $AF_UNIX = 1;
my $SOCK_STREAM = 1;
my $PROTOCOL = 0;
socket(CLIENTSOCKET,$PROTOCOL);

my $name="./.mysock";
my $result;
do {
? ? $result =connect(CLIENTSOCKET,sockaddr_un("$name"));
? ? if ($result != 1) {
? ? ? sleep(1);
? ? }
} while ($result != 1);

my $buf;
while(read(CLIENTSOCKET,my $data,500)) {
? ? $buf .= $data;
}
p

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读