Quantcast
Channel: 网络编程_A-xy学院|Java专业学习网站,Java自学教程!
Browsing latest articles
Browse All 33 View Live

Java网络编程从入门到精通(1):Internet地址概述

所有连入Internet的终端设备(包括计算机、PDA、打印机以及其他的电子设备)都有一个唯一的索引,这个索引被称为IP地址。现在Internet上的IP地址大多由四个字节组成,这种IP地址叫做IPv4.除了这种由四个字节组成的IP,在Internet上还存在一种IP,这种IP由16

View Article



Java网络编程从入门到精通(2):创建InetAddress对象的四个静态

InetAddress类是Java中用于描述IP地址的类。它在java.net包中。在Java中分别用Inet4Address和Inet6Address类来描述IPv4和IPv6的地址。这两个类都是InetAddress的子类。由于InetAddress没有public的构造方法,因此,要想创建InetAddress对象,必须得依靠它的

View Article

Java网络编程从入门到精通(3):为什么不能直接通过IP访问网站

在《 创建InetAddress对象的四个静态方法 》一文中通过getAllByName得到了www.csdn.net对应的四个IP地址。从理论上说,在IE(或其他的Web浏览器,如Firefox)的地址栏中输入这四个IP地址中的任何一个,都可能访问www.csdn.net.如输入http://211.100.26.124.

View Article

Java网络编程从入门到精通(4):DNS缓存

在通过DNS查找域名的过程中,可能会经过多台中间DNS服务器才能找到指定的域名,因此,在DNS服务器上查找域名是非常昂贵的操作。在Java中为了缓解这个问题,提供了DNS缓存。当InetAddress类第一次使用某个域名(如www.csdn.net)创建InetAddress对象后,JVM就

View Article

Java网络编程从入门到精通(5):使用InetAddress类的getHostNam

该方法可以得到远程主机的域名,也可以得到本机名。getHostName方法的定义如下: public String getHostName() 下面是三种创建InetAddress对象的方式,在这三种方式中,getHostName返回的值是不同的。 1.使用getLocalHost方法创建InetAddress对象 如果InetAd

View Article


Java网络编程从入门到精通(6):使用getCanonicalHostName方法

getCanonicalHostName方法和getHostName方法一样,也是得到远程主机的域名。但它们有一个区别。getCanonicalHostName得到的是主机名,而getHostName得到的主机别名。getCanonicalHostName的定义如下: public String getCanonicalHostName() 在访问某些域名

View Article

Java网络编程从入门到精通(7):用getHostAddress方法获得IP地

这个方法用来得到主机的IP地址,这个IP地址可能是IPv4的地址,也可能是IPv6的地址。getHostAddress方法的定义如下: public String getHostAddress() 无论InetAddress对象是使用哪种方式创建的,getHostAddress方法都不会访问DNS服务器。如果想访问使用IPv6

View Article

Java网络编程从入门到精通(8):用getAddress方法获得IP地址

getAddress方法和getHostAddress类似,它们的唯一区别是getHostAddress方法返回的是字符串形式的IP地址,而getAddress方法返回的是byte数组形式的IP地址。getAddress方法的定义如下: public byte [] getAddress() 这个方法返回的byte数组是有符号的。在Java

View Article


Java网络编程从入门到精通(9):使用isXxx方法判断地址类型

IP地址分为普通地址和特殊地址。在前面的文章中所使用的大多数都是普通的IP地址,在本文中将介绍如何利用InetAddress类提供的十个方法来确定一个IP地址是否是一个特殊的IP地址。 一、isAnyLocalAddress方法 当IP地址是通配符地址时返回true,否则返回false.

View Article


Java网络编程从入门到精通(10):Inet4Address类和Inet6Address

为了区分IPv4和IPv6地址,Java提供了两个类:Inet4Address和Inet6Address,它们都是InetAddress类的子类,这两个类的定义如下: public final class Inet4Address extends InetAddress public final class Inet6Address extends InetAddress 这两个类分别按

View Article

Java网络编程从入门到精通(11):使用NetworkInterface类获得网

从JDK1.4开始,Java提供了一个NetworkInterface类。这个类可以得到本机所有的物理网络接口和虚拟机等软件利用本机的物理网络接口创建的逻辑网络接口的信息。 相关技术专题: Java 网络编程-基础到进阶教程 一、创建NetworkInterface对象的两个静态方法 Netwo

View Article

Java网络编程从入门到精通(12):使用isReachable方法探测主机

在J2SE5.0中的InetAddress类中增加了一个isReachable方法。可以使用这个方法来探测主机是否可以连通。这个方法有两个重载形式,它们的定义如下: public boolean isReachable( int timeout) throws IOException public boolean isReachable(NetworkInterface

View Article

Java网络编程从入门到精通(13):使用Socket类接收和发送数据

网络应用分为客户端和服务端两部分,而Socket类是负责处理客户端通信的Java类。通过这个类可以连接到指定IP或域名的服务器上,并且可以和服务器互相发送和接受数据。在本文及后面的数篇文章中将详细讨论Socket类的使用,内容包括Socket类基

View Article


Java网络编程从入门到精通(14):多种多样的建立网络连接的方式

在上一篇文章中我们讨论了Socket类的基本用法,并给出的例子中使用Socket类连接服务器时使用了一种最简单的连接方式,也就是通过IP和端口号来连接服务器。而为了使连接服务器的方式更灵活,Socket类不仅可以通过自身的构造方法连接服务器,而且也可以通过con

View Article

Java网络编程从入门到精通(15):为什么要使用SocketAddress来

在使用Socket来连接服务器时最简单的方式就是直接使用IP和端口,但Socket类中的connect方法并未提供这种方式,而是使用SocketAddress类来向connect方法传递服务器的IP和端口。虽然这种方式从表面上看要麻烦一些,但它会给我们带来另外一个好处,那就是网络地

View Article


Java网络编程从入门到精通(16):客户端套接字(Socket)的超时

客户端套接字的超时(timeout)就是指在客户端通过Socket和服务器进行通讯的过程中,由于网络延迟,网络阻塞等原因,造成服务器并未及时响应客户端的一种现象。在一段时间后,客户端由于未收到服务端的响应而抛出一个超时错误; 其中客户端所等待的时间就是

View Article

Java网络编程从入门到精通(17):Socket类的getter和setter方法

在 Java 类中,getter和setter方法占了很大的比重。由于 Java 中没有定义属性的关键字;因此,getter和setter方法用于获得和设置Java类的属性值;如getName和setName方法用于设置name属性的值。如果某个属性只有getter方法,那这个属性是只读的;如果只有set

View Article


Java网络编程从入门到精通(18):Socket类的getter和setter方法

二、用于获得和设置Socket选项的getter和setter方法 Socket选择可以指定Socket类发送和接受数据的方式。在JDK1.4中共有8个Socket选择可以设置。这8个选项都定义在java.net.SocketOptions接口中。定义如下: public final static int TCP_NODELAY = 0x0001 ;

View Article

Java网络编程从入门到精通(19):套接字(Socket)的异常

在Socket类中有很多方法在声明时使用throws抛出了一些异常,这些异常都是IOException的子类。在Socket类的方法中抛出最多的就是SocketException,其余还有七个异常可供Socket类的方法抛出。这些异常的继承关系如图1所示。其中灰色背景框所描述的例外就是Sock

View Article

Java网络编程从入门到精通(20):HTTP协议简介

一、什么是HTTP 协议 HTTP协议是一种应用层协议,HTTP是HyperText Transfer Protocol(超文本传输协议)的英文缩写。HTTP可以通过传输层的TCP协议在客户端和服务器之间传输数据。HTTP协议主要用于Web浏览器和Web服务器之间的数据交换。我们在使用IE或Firefox

View Article

Java网络编程从入门到精通(21):HTTP消息的格式

当用户在浏览器中输入一个基于HTTP协议的URL时(以http://开头的URL),就相当于通知器按着这个URL组织生成一个HTTP请求,并交过个请求发送到服务器;同时,等待服务器的响应。无论是请求还是响应,都统称为HTTP消息。 HTTP协议分为两部分: 1. HTTP请求消息

View Article


Java网络编程从入门到精通(22):实现HTTP模拟器

在讨论HTTP协议的具体请求和响应头字段之前,让我们先来利用以前所学的知识来实现一个HTTP模拟器。所谓HTTP模拟器就是可以在用户输入HTTP的请求消息后,由这个模拟器将HTTP请求发送给相应的服务器,再接收服务器的响应消息。这个HTTP模拟器有几下特点: 1.

View Article


Java网络编程从入门到精通(23):HTTP消息头字段

一、通用头字段 1. Connection 这个字段只在HTTP1.1 协议 中存在。它决定了客户端和 服务器 进行了一次会话后, 服务器 是否立即关闭网络连接。在客户端最直接的表现是使用read方法(readLine方法也是一样)读完客户端请求的Web资源后,是否立即返回-1(read

View Article

Java网络编程从入门到精通(24):实现HTTP断点续传下载工具(附

在前面的文章曾讨论了HTTP消息头的三个和断点继传有关的字段。一个是请求消息的字段Range,另两个是响应消息字段Accept-Ranges和Content-Range.其中Accept-Ranges用来断定Web服务器是否支持断点继传功能。在这里为了演示如何实现断点继传功能,假设Web服务器

View Article

Java网络编程从入门到精通(25):创建ServerSocket对象

ServerSocket类的构造方法有四种重载形式,它们的定义如下: public ServerSocket() throws IOException public ServerSocket( int port) throws IOException public ServerSocket( int port, int backlog) throws IOException public...

View Article


Java网络编程从入门到精通(26):在服务端接收和发送数据

在建立完ServerSocket对象后,通过accept方法返回的Socket对象,服务端就可以和客户端进行数据交互。 Socket类和ServerSocket类都有两个得到输入输出流的方法:getInputStream和getOutputStream.对于Socket类而言,使用getInputStream方法得到的InputStream

View Article

Java网络编程从入门到精通(27):关闭服务端连接

在客户端和服务端的数据交互完成后,一般需要关闭网络连接。对于服务端来说,需要关闭Socket和ServerSocket. 在关闭Socket后,客户端并不会马上感知自已的Socket已经关闭,也就是说,在服务端的Socket关闭后,客户端的Socket的isClosed和isConnected方法仍然

View Article

Java网络编程从入门到精通(28):获取ServerSocket信息的方法及

与ServerSocket对象相关的信息有两个:绑定端口和绑定IP地址。绑定端口可以通过getLocalPort方法获得。绑定IP地址可以通过getInetAddress方法获得。 一、getLocalPort方法 getLocalPort方法的返回值可分为以下三种情况: 1. ServerSocket对象未绑定端口,get

View Article

Java网络编程从入门到精通(29):服务端Socket的选项

ServerSocket类有以下三个选项: 1. SO_TIMEOUT: 设置accept方法的超时时间。 2. SO_REUSEADDR:设置服务端同一个端口是否可以多次绑定。 3. SO_RECBUF:设置接收缓冲区的大

View Article



Java网络编程从入门到精通(30):定制accept方法

使用ServerSocket类的implAccept方法可以使用accept方法返回一个Socket子类对象。但implAccept是protected方法,因此,必须在ServerSocket类的子类中覆盖accept方法,然后在accept方法中使用implAccept方法重新设置Socket对象。implAccept方法的定义如下: p

View Article

Java网络编程从入门到精通(31):非阻塞I/O简介

在网络应用中,一般可以采用同步I/O(阻塞I/O)和非阻塞I/O两种方式进行数据通讯。这两种方式并非互相排斥和互相取代。我们可以在平时的应用中单独采用其中一种通讯方式,也可以混合使用这两种通讯方式。在本文中就什么是非阻塞I/O以及为什么要使用这种通讯

View Article

Java网络编程从入门到精通(32):一个非阻塞I/O的例子

为了使读者更好地理解非阻塞I/O,本节给出了一个简单的例子用来演示如何将非阻塞I/O应用到网络程序中。读者可以先不必管这个例子的具体细节。因为这个例子的主要目的并不是讲解非阻塞I/O的使用,而是先让读者对非阻塞I/O有一个笼统的感性认识。在看完这个例

View Article

Java网络编程从入门到精通(33):非阻塞I/O的缓冲区(Buffer)

如果将同步I/O方式下的数据传输比做数据传输的零星方式(这里的零星是指在数据传输的过程中是以零星的字节方式进行的),那么就可以将非阻塞I/O方式下的数据传输比做数据传输的集装箱方式(在字节和低层数据传输之间,多了一层缓冲区,因此,可以将缓冲区看

View Article

Browsing latest articles
Browse All 33 View Live




Latest Images