![](http://oshiete.xgoo.jp/images/v2/pc/qa/question_title.png?e8efa67)
No.1ベストアンサー
- 回答日時:
### Source
## Server
#!/usr/bin/perl
use strict;
use warnings;
use Socket;
use IO::Handle;
my $port = shift // 1234;
# Protocol
my $proto = getprotobyname('tcp');
# Make socket
socket( my $sock, PF_INET, SOCK_STREAM, $proto ) or die "socket:$!";
# Set socket options
setsockopt( $sock, SOL_SOCKET, SO_REUSEADDR, 1 ) or die "setsockopt error $!";
# bind
bind( $sock, pack_sockaddr_in( $port, INADDR_ANY ) ) or die "bind:$!";
#listen
listen( $sock, SOMAXCONN ) or die "bind error $!";
my $paddr;
my ( $client_port, $client_iaddr, $client_host, $client_ip );
while (1) {
# Wait to connect
$paddr = accept( my $session, $sock ) || die "accept:$!";
# No buffering
# select(SESSION); $|=1; select(STDOUT);
$session->autoflush(1);
# Print client information
( $client_port, $client_iaddr ) = unpack_sockaddr_in($paddr);
$client_ip = inet_ntoa($client_iaddr);
print "Connect: $client_ip, port $client_port\n";
# Print Client Mesage
my $msg = <$session>;
print "from client: ", $msg;
# Say Hello World
print $session "Hello World. I'm server\n";
close $session or die "close:$sock";
}
close $sock or die "close:$sock";
## Client
#!/usr/bin/perl
use strict;
use warnings;
use Socket;
use IO::Handle;
my $host = shift // 'localhost';
my $port = shift // 1234;
# Change IP Information
my $ipaddr = inet_aton($host) || die "inet_aton error $!";
# Create socket information
my $sock_addr = pack_sockaddr_in( $port, $ipaddr );
# Protocol
my $proto = getprotobyname('tcp');
# Create socket
socket( my $sock, PF_INET, SOCK_STREAM, $proto ) or die "socket error $!";
# Connet
connect( $sock, $sock_addr ) or die "connect error $!";
# No buffering
#select(CLIENT_SOCK); $|=1; select(STDOUT);
$sock->autoflush(1);
# Send Hello
print $sock "Hello World. I'm client\n";
# Recieve Hello
my $msg = <$sock>;
print "from server: ", $msg;
# Close
close $sock or die "close:$!";
### Command
## Exec Server
$ perl tcp_server.pl
## Exec Client
$ perl -w tcp_client.pl
from server: Hello World. I'm server
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- ネットワーク 社内ネットワークの1台だけ接続できないときがある 4 2023/01/25 11:58
- サーバー (童顔♀です)webサイト納品後,記事更新をこちらでする場合どうやりますか....? 3 2023/08/09 04:44
- オープンソース Flaskでサーバー立ち上げに関して 1 2023/08/12 21:02
- サーバー Webサイト構築フリーランスの案件受注について 1 2022/03/27 18:16
- ネットワーク 自分のPC(ローカル環境)から,Webページにアクセスする過程についての質問です。 1 2023/03/19 23:00
- サーバー Webページに繋がるまでの流れについての質問です。 2 2023/03/19 23:15
- UNIX・Linux OpenSSHのサーバー設定ファイルsshd_config内のHostKey行について 4 2023/05/02 09:53
- サーバー HP制作をしている方、納品後のデータについて 2 2023/04/12 19:29
- サーバー クライアントとサーバーを繋ぐ際に、リバースプロキシとロードバランサを使う時の違いはなんですか? 1 2023/01/13 14:27
- サーバー クッキーをサーバー側で管理することで攻撃に備える 1 2022/08/11 03:49
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Perl言語について。
-
テキストファイルで提出とは?
-
Perlのエラーについてご教授く...
-
INDIRECT 横に再度抽出したい
-
perl LWPでURLにアクセスした時...
-
perlのgrepでmyを付けた場合と...
-
ファイルをディレクトリ分配の...
-
アルファベットに付いて質問し...
-
#!/usr/bin/perlで書きだしたCG...
-
perlのflock関数でロックをかけ...
-
AI sisterとは、偽物の人ですか?
-
bashスクリプト
-
ファイルアイコンの左下に緑の□...
-
perlプログラミング 空白行削除
-
perlでリテラル値はメモリにど...
-
perlで2次元配列をサブルーチ...
-
Perlで時間の計算
-
perlについて
-
perlのrequireの動き方について...
-
perlの構文でカンマの意味が分...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
openした後、closeしないでプロ...
-
テキストファイルで提出とは?
-
INDIRECT 横に再度抽出したい
-
Perlで特定文字列から特定文字...
-
perlをバージョンアップしたら...
-
Wallpaper Engineでおすすめの...
-
arduino の割り込み処理について
-
アルファベットに付いて質問し...
-
Strawberry Perl for Windows ...
-
Perlで時間の計算
-
このファイルを開く方法で困っ...
-
TeraPadエディターの操作方法に...
-
cgiでサーバーにファイルを追加...
-
フローチャート 九九
-
LinuxにおいてのPerlのプログラ...
-
perl 初等プログラミングについて
-
Perlのエラーについてご教授く...
-
こんにちは ブラケッツでプログ...
-
bashスクリプト
-
perlプログラミング 空白行削除
おすすめ情報
一応補足ですが、もちろん入力と言うのはGUIを作れとかそうゆうことを言ってるわけじゃないです。
$ip = '01.23.456.789':
とかでけっこうです。