13.07.2015 Views

Perl 语言编程 - Linux教程

Perl 语言编程 - Linux教程

Perl 语言编程 - Linux教程

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

# 制 作 自 己 的 套 接 字 地 址$my_addr = sockaddr_in($server_port, INADDR_ANY);bind(Server, $my_addr)or die "Couldn't bind to port $server_port: $!\n";# 为 来 访 联 接 建 立 一 个 队 列listen(Server, SOMAXCONN)or die "Couldn't listen on port $server_port: $!\n";# 接 受 并 处 理 任 何 联 接while(accept(Client, Server)) {# 在 新 建 的 客 户 端 联 接 上 做 些 处 理}close(Server);客 户 端 不 需 要 和 任 何 地 址 bind ( 绑 定 ), 但 是 服 务 器 需 要 这 么 做 。 我 们 把 它 的 地 址 声 明为 INADDR_ANY, 意 味 着 客 户 端 可 以 从 任 意 可 用 的 网 络 接 口 上 来 , 如 果 你 想 固 定 使 用 某个 接 口 ( 比 如 一 个 网 关 或 者 防 火 墙 机 器 ), 那 么 使 用 该 机 器 的 真 实 地 址 。( 客 户 端 也 可 以 这么 干 , 不 过 很 少 必 须 这 么 干 。)如 果 你 想 知 道 是 哪 个 机 器 和 你 相 联 , 你 可 以 在 客 户 联 接 上 调 用 getpeername。 这 样 返 回一 个 IP 地 址 , 你 可 以 自 己 把 它 转 换 成 一 个 名 字 ( 如 果 你 能 ):use Socket;$other_end = getpeername(Client)or die "Couldn't identify other end: $!\n";447

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!