Java实现Socket之WhoisClient

代码内容

  • 从常用的whois服务器的43号端口得到对应域名的所有注册信息并显示出来

代码实现

/* WhoisClient.java */
import java.io.*;
import java.net.*; public class WhoisClient {
public static void main(String[] args) {
BufferedReader systemIn = new BufferedReader(new InputStreamReader(System.in));
System.out.println("Enter the domain names. Enter \"exit\" to quit.");
try {
while (true) {
/* 输入流提示控制 */
System.out.print("> ");
String host = (args.length > 0) ? args[0] : systemIn.readLine();
if (host.isEmpty()) {
continue;
} else if (host.equalsIgnoreCase("exit")) {
break;
}
whois(host);
if (args.length > 0)
break;
}
} catch (IOException e) {
e.printStackTrace();
}
} private static void whois(String host) {
try {
/* 设置服务器地址和端口号 */
InetAddress server = InetAddress.getByName("whois.markmonitor.com");
int port = 43;
/* 建立Socket连接 */
Socket socket = new Socket(server, port);
/* 写入发送消息到Socket */
PrintWriter out = new PrintWriter(socket.getOutputStream());
out.println(host);
out.flush();
/* 从Socket读取消息 */
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
/* 格式化输出 */
StringBuilder ret = new StringBuilder();
String line;
while ((line = in.readLine()) != null) {
ret.append(line + "\r\n");
}
/* 安全关闭Socket */
socket.close();
/* 结果输出判断 */
if (ret.toString().trim().isEmpty()) {
System.out.println("该域名不在whois上注册");
} else {
System.out.println(ret.toString());
}
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}

运行截图







Java实现Socket之WhoisClient的更多相关文章

  1. Java发送socket请求的工具

    package com.tech.jin.util; import java.io.ByteArrayOutputStream; import java.io.IOException; import ...

  2. java基于socket公共聊天室的实现

    项目:一个公共聊天室功能的实现,实现了登录聊天,保存聊天记录等功能. 一.实现代码 1.客户端 ChatClient.java import java.io.BufferedReader; impor ...

  3. JAVA之Socket编程

    网上对Socket的诠释很多,也很全,在这里我就不多说了,总之,现在的网络处处都在使用Socket.本帖是一个Socket的例子,用来模拟一个简单的登录系统,只有核心代码,访问数据库.输入神马的统统没 ...

  4. Java多线程Socket在控制台输出的多人聊天室编程

    服务器端代码 import java.io.IOException; import java.net.ServerSocket; import java.net.Socket; import java ...

  5. Java 多线程Socket编程通讯--实现聊天室代码

    1.创建服务器类 import java.io.IOException; import java.net.ServerSocket; import java.net.Socket; import ja ...

  6. 简单通过java的socket&serversocket以及多线程技术实现多客户端的数据的传输,并将数据写入hbase中

    业务需求说明,由于公司数据中心处于刚开始部署的阶段,这需要涉及其它部分将数据全部汇总到数据中心,这实现的方式是同上传json文件,通过采用socket&serversocket实现传输. 其中 ...

  7. java之socket

    socket系java中网络编程的内容. 1客户端: package com.wtd.socket; import java.io.BufferedReader; import java.io.IOE ...

  8. Java实现Socket之TimeClient

    Java实现Socket之TimeClient 代码内容 从time.nist.gov服务器的37号端口得到时间信息,并对时间进行解析后显示出来 代码实现 /* TimeClient.java */ ...

  9. Flex通信-与Java实现Socket通信实例

    Flex通信-与Java实现Socket通信实例  转自:http://blessht.iteye.com/blog/1136888 博客分类: Flex 环境准备 [服务器端] JDK1.6,“ja ...

随机推荐

  1. js设计模式-单例模式

      JavaScript中的单例模式是最常用的.最基本的设计模式,它提供了一种命名空间,减少全局变量泛滥的代码管理机制: 1.最常见的单例模式: [javascript] view plain cop ...

  2. JS跳转到顶部的方法

    <!DOCTYPE html><html> <head> <meta charset="UTF-8"> <title>J ...

  3. 【缓存】EF4ProviderWrappers

    在Kooboo中使用了Entity Framework作为持久化框架,但由于EF1.0并没有提供完整缓存解决方案,一直以来都在为数据缓存而烦脑,在没有找到合适解决方案的情况下,采取了临时的解决办法:直 ...

  4. 设计模式-外观模式(Facade)

    简介 外观模式(Facade),将外部与内部子系统的通信通过一个统一的门面对象进行. 由两部分组成: 门面角色:供外部调用,内部可能组装了多个子系统,多个方法. 子系统角色:子系统的方法也可以直接供外 ...

  5. select 语句占位符

    对于已预备的语句,可以使用位置保持符.以下语句将从tb1表中返回一行: mysql> SET @a=1; mysql> PREPARE STMT FROM "SELECT * F ...

  6. PL/SQL Developer基本用法

    一.新建存储过程

  7. ASP.NET中Server对象的几个方法

    HtmlDecode 已重载. 对已被编码以消除无效 HTML 字符的字符串进行解码.HtmlEncode 已重载. 对要在浏览器中显示的字符串进行编码.MapPath 返回与 Web 服务器上的指定 ...

  8. 关于MongoDb Replica Set的故障转移集群——理论篇

    自从10 gen用Replica Set取代Master/Slave方案后生活其实已经容易多了,但是真正实施起来还是会发现各种各样的小问题,如果不小心一样会栽跟头. 在跟Replica Set血拼几天 ...

  9. 最近的学习的linux命令笔记

    vmstat 2 2 mail -s nihao root < test.txt     f 323   h 300-310 crontab  -l,-e,-r    vim /etc/cron ...

  10. php 提示Warning: mysql_fetch_array() expects

    我的高度代码如下 include("conn.php"); if(!empty($_GET['id'])){         $sql="select * from ne ...