网络蜘蛛程序学习1

网络蜘蛛程序学习1

Bot程序:一种“有意识”的Internet程序,能从指定的Internet站点上检索信息。有人叫这个为:网络机器人

例如:桌面应用程序会检查邮箱邮件,有新邮件会自动提醒。但是Bot程序是否合法?有些网站明令禁止,比如:股票站点。所以,作为Bot程序搜索必须合法。

Spider程序:一种专业化的Bot程序,用于查找大量的Web页面,Spider程序事先并不知道将要查询的页面,程序通过上一个页面查找下一个页面。有人叫这个为:网络蜘蛛程序

蜘蛛程序应用在搜索引擎方面比较多,还可以应用于:扫描出中断的链接等。

 

1java套接字编程技术

Web是建立在HTTP之上的协议,而HTTP又是建立在TCP/IP之上的协议,而TCP/IP它同时也是一种套接字协议。

TCP/IP网络上所有的计算机都看成是平等的,这种类型的网络叫对等网络。服务器和普通的网络也是对等的。

网络编程=套接字编程。网络上的每一台电脑都有很多套接字辅助计算机程序生效。这些套接字叫端口。端口号很重要,其中一个就是80端口号,是HTTP使用。多个客户端是可以同时连接到同一台服务器。但是每个时刻只有一个程序能监听同样的服务器端口。例如:很多电视机(客户端)可以调到一个特定的频道(服务器),但是几个台(服务器群)不可能在同一个频道上播放。

TCP/IP协议是由两个协议组合:传输控制协议(TCP)和Internet协议(IP)。IP负责将数据包从一个节点传到另外一个节点,而TCP负责校验数据正确性。

主机名和IP是多对多的关系。通过ping主机名可以得到主机的IP

DNS如何将主机名解析成IP地址

主机名转换成IP地址有多精确呢?可以通过DNS来转换。

DNS服务器是指能返回与特定主机名相关联的IP地址的服务器。解析主机名的操作由大批设置在世界各地的DNS服务器完成。而DNS也是通过主机名,为了解决矛盾,DHCP产生了。

在很多网络中,计算机系统都是用DHCP取代强行要求用户指定大部分网络配置信息(包括IP地址和DNS服务器)。利用DHCP使IP网络上的每台jsj都能从DHCP服务器上获取他们的初始配置信息,无需用户自己设置。用户的计算机第一次联网都会申请这些信息。

使用java实现主机名查找IP地址:

package wans.com.chapter1;

import java.net.InetAddress;

import java.net.UnknownHostException;

/**

 * 使用主机名查找IP地址

 * @author wans

 */

public class FindIP {

    public static void main(String[] args) throws UnknownHostException {

       String hostname = "www.baidu.com";    

       if(hostname.length() <= 0) {

           System.out.println("主机名不能为空!");

       }else {

           InetAddress address = InetAddress.getByName(hostname);

           System.out.println("IP地址为: " + address);

       }

    }

}

 

Java I/O编程技术

JavaI/O类由输入流,输出流,阅读器,写入器,过滤器组成。

1,输出流

OutputStreampublic abstract class OutputStream extends Object implements Closeable, Flushable

直接已知子类: ByteArrayOutputStream, FileOutputStream, FilterOutputStream, ObjectOutputStream, OutputStream, PipedOutputStream

方法摘要

 void

close()                  关闭此输出流并释放与此流有关的所有系统资源。

 void

flush()                  刷新此输出流并强制写出所有缓冲的输出字节。

 void

write(byte[] b)            b.length 个字节从指定的字节数组写入此输出流。

 void

write(byte[] b, int off, int len)   

将指定字节数组中从偏移量 off 开始的 len 个字节写入此输出流。

abstract  void

write(int b)              将指定的字节写入此输出流。

 

2,输入流

InputStreampublic abstract class InputStream extends Object implements Closeable

直接已知子类: AudioInputStream, ByteArrayInputStream, FileInputStream, FilterInputStream, InputStream, ObjectInputStream, PipedInputStream, SequenceInputStream, StringBufferInputStream

方法摘要

 int

available()           返回此输入流方法的下一个调用方可以不受阻塞地从此输入流读取(或跳过)的字节数。

 void

close()           关闭此输入流并释放与该流关联的所有系统资源。

 void

mark(int readlimit)           在此输入流中标记当前的位置。

 boolean

markSupported()           测试此输入流是否支持 mark reset 方法。

abstract  int

read()           从输入流读取下一个数据字节。

 int

read(byte[] b)           从输入流中读取一定数量的字节并将其存储在缓冲区数组 b 中。

 int

read(byte[] b, int off, int len)           将输入流中最多 len 个数据字节读入字节数组。

 void

reset()           将此流重新定位到对此输入流最后调用 mark 方法时的位置。

 long

skip(long n)           跳过和放弃此输入流中的 n 个数据字节。

 

Java中的套接字编程

Java定义了两个类:SocketServerSocket。使用输入和输出流进行交换。

 

2HTTP超文本传输协议

HTTPHTTPSHTTP加密形式)。

URLURI的一个子集(略)

 

 

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值