Welcome 微信登录

首页 / 软件开发 / JAVA

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

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

Java网络编程从入门到精通(14):多种多样的建立网络连接的方式2011-01-12在上一篇文章中我们讨论了Socket类的基本用法,并给出的例子中使用Socket类连接服务器时使用了一种最简单的连接方式,也就是通过IP和端口号来连接服务器。而为了使连接服务器的方式更灵活,Socket类不仅可以通过自身的构造方法连接服务器,而且也可以通过connect方法来连接数据库。一、通过构造方法连接服务器我们可以通过6个重载构造函数以不同的方式来连接服务器。这6个...
Java网络编程从入门到精通(15):为什么要使用SocketAddress来管理网络地址

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

Java网络编程从入门到精通(15):为什么要使用SocketAddress来管理网络地址2011-01-12在使用Socket来连接服务器时最简单的方式就是直接使用IP和端口,但Socket类中的connect方法并未提供这种方式,而是使用SocketAddress类来向connect方法传递服务器的IP和端口。虽然这种方式从表面上看要麻烦一些,但它会给我们带来另外一个好处,那就是网络地址的重用。所谓网络地址的重用表现在两个方面:1. 通过建立一个Soc...
Java网络编程从入门到精通(16):客户端套接字(Socket)的超时

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

Java网络编程从入门到精通(16):客户端套接字(Socket)的超时2011-01-12客户端套接字的超时(timeout)就是指在客户端通过Socket和服务器进行通讯的过程中,由于网络延迟,网络阻塞等原因,造成服务器并未及时响应客户端的一种现象。在一段时间后,客户端由于未收到服务端的响应而抛出一个超时错误; 其中客户端所等待的时间就是超时时间。由于生产超时错误的一端都是被动端;也就是说,这一端是在接收数据,而不是发送数据。对于客户端Socket来说...
Java网络编程从入门到精通(17):Socket类的getter和setter方法(1)

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

Java网络编程从入门到精通(17):Socket类的getter和setter方法(1)2011-01-12在Java类中,getter和setter方法占了很大的比重。由于Java中没有定义属性的关键字;因此,getter和setter方法用于获得和设置Java类的属性值;如getName和setName方法用于设置name属性的值。如果某个属性只有getter方法,那这个属性是只读的;如果只有setter方法,那么这个属性是只写的。在Socket类中...
Java网络编程从入门到精通(18):Socket类的getter和setter方法(2)

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

Java网络编程从入门到精通(18):Socket类的getter和setter方法(2)2011-01-12二、用于获得和设置Socket选项的getter和setter方法Socket选择可以指定Socket类发送和接受数据的方式。在JDK1.4中共有8个Socket选择可以设置。这8个选项都定义在java.net.SocketOptions接口中。定义如下:public final static int TCP_NODELAY = 0x0001;pu...
Java网络编程从入门到精通(19):套接字(Socket)的异常

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

Java网络编程从入门到精通(19):套接字(Socket)的异常2011-01-12在Socket类中有很多方法在声明时使用throws抛出了一些异常,这些异常都是IOException的子类。在Socket类的方法中抛出最多的就是SocketException,其余还有七个异常可供Socket类的方法抛出。这些异常的继承关系如图1所示。其中灰色背景框所描述的例外就是Socket类的方法可能抛出的异常。public class IOException e...
Java网络编程从入门到精通(20):HTTP协议简介

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

Java网络编程从入门到精通(20):HTTP协议简介2011-01-12一、什么是HTTP协议HTTP协议是一种应用层协议,HTTP是HyperText Transfer Protocol(超文本传输协议)的英文缩写。HTTP可以通过传输层的TCP协议在客户端和服务器之间传输数据。HTTP协议主要用于Web浏览器和Web服务器之间的数据交换。我们在使用IE或Firefox浏览网页或下载Web资源时,通过在地址栏中输入http://host:port/pa...
Java网络编程从入门到精通(21):HTTP消息的格式

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

Java网络编程从入门到精通(21):HTTP消息的格式2011-01-12当用户在浏览器中输入一个基于HTTP协议的URL时(以http://开头的URL),就相当于通知器按着这个URL组织生成一个HTTP请求,并交过个请求发送到服务器;同时,等待服务器的响应。无论是请求还是响应,都统称为HTTP消息。HTTP协议分为两部分:1.HTTP请求消息。2.HTTP响应消息。一、HTTP请求消息HTTP请求消息分为请求消息头以及请求实体内容两部分。请求消息头的...
Java网络编程从入门到精通(22):实现HTTP模拟器

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

Java网络编程从入门到精通(22):实现HTTP模拟器2011-01-12在讨论HTTP协议的具体请求和响应头字段之前,让我们先来利用以前所学的知识来实现一个HTTP模拟器。所谓HTTP模拟器就是可以在用户输入HTTP的请求消息后,由这个模拟器将HTTP请求发送给相应的服务器,再接收服务器的响应消息。这个HTTP模拟器有几下特点:1.可以手工输入HTTP请求,并向服务器发送。2.接收服务器的响应消息。3.消息头和实体内容分段显示,也就是说,并不是象Tel...
Java网络编程从入门到精通(23):HTTP消息头字段

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

Java网络编程从入门到精通(23):HTTP消息头字段2011-01-12一、通用头字段1.Connection这个字段只在HTTP1.1协议中存在。它决定了客户端和服务器进行了一次会话后,服务器是否立即关闭网络连接。在客户端最直接的表现是使用read方法(readLine方法也是一样)读完客户端请求的Web资源后,是否立即返回-1(readLine返回null)。Connection有两个值:Close和Keep-Alive。当使用Connection...
Java网络编程从入门到精通(24):实现HTTP断点续传下载工具

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

Java网络编程从入门到精通(24):实现HTTP断点续传下载工具2011-01-12在前面的文章曾讨论了HTTP消息头的三个和断点继传有关的字段。一个是请求消息的字段Range,另两个是响应消息字段Accept-Ranges和Content-Range。其中Accept-Ranges用来断定Web服务器是否支持断点继传功能。在这里为了演示如何实现断点继传功能,假设Web服务器支持这个功能;因此,我们只使用Range和Content-Range来完成一个断...
Java网络编程从入门到精通(26):在服务端接收和发送数据

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

Java网络编程从入门到精通(26):在服务端接收和发送数据2011-01-13 BlogJava 银河使者在建立完ServerSocket对象后,通过accept方法返回的Socket对象,服务端就可以和客户端进行数据交互。Socket类和ServerSocket类都有两个得到输入输出流的方法:getInputStream和getOutputStream。对于Socket类而言,使用getInputStream方法得到的InputStream是从服务端获...
Java网络编程从入门到精通(27):关闭服务端连接

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

Java网络编程从入门到精通(27):关闭服务端连接2011-01-13 BlogJava 银河使者在客户端和服务端的数据交互完成后,一般需要关闭网络连接。对于服务端来说,需要关闭Socket和ServerSocket。在关闭Socket后,客户端并不会马上感知自已的Socket已经关闭,也就是说,在服务端的Socket关闭后,客户端的Socket的isClosed和isConnected方法仍然会分别得到false和true。但对已关闭的Socket的输...
Java网络编程从入门到精通(28):获取ServerSocket信息的方法及FTP原理

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

Java网络编程从入门到精通(28):获取ServerSocket信息的方法及FTP原理2011-01-13 BlogJava 银河使者与ServerSocket对象相关的信息有两个:绑定端口和绑定IP地址。绑定端口可以通过getLocalPort方法获得。绑定IP地址可以通过getInetAddress方法获得。一、getLocalPort方法getLocalPort方法的返回值可分为以下三种情况:1.ServerSocket对象未绑定端口,getLoc...
Java网络编程从入门到精通(29):服务端Socket的选项

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

Java网络编程从入门到精通(29):服务端Socket的选项2011-01-13 BlogJava 银河使者ServerSocket类有以下三个选项:1.SO_TIMEOUT: 设置accept方法的超时时间。2.SO_REUSEADDR:设置服务端同一个端口是否可以多次绑定。3.SO_RECBUF:设置接收缓冲区的大小。一、SO_TIMEOUT选项可以通过SeverSocket类的两个方法(setSoTimeout和getSoTimeout)来设置和获...
Java网络编程从入门到精通(30):定制accept方法

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

Java网络编程从入门到精通(30):定制accept方法2011-01-13 BlogJava 银河使者使用ServerSocket类的implAccept方法可以使用accept方法返回一个Socket子类对象。但implAccept是protected方法,因此,必须在ServerSocket类的子类中覆盖accept方法,然后在accept方法中使用implAccept方法重新设置Socket对象。implAccept方法的定义如下:protect...
Java网络编程从入门到精通(31):非阻塞I/O简介

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

Java网络编程从入门到精通(31):非阻塞I/O简介2011-01-13在网络应用中,一般可以采用同步I/O(阻塞I/O)和非阻塞I/O两种方式进行数据通讯。这两种方式并非互相排斥和互相取代。我们可以在平时的应用中单独采用其中一种通讯方式,也可以混合使用这两种通讯方式。在本文中就什么是非阻塞I/O以及为什么要使用这种通讯方式进行了介绍,在下一篇文章中给出了一个简单的例子来演示在网络应用中如何使用非阻塞I/O进行通讯。一、什么是非阻塞I/O我们可以将同步I...
Java网络编程从入门到精通(32):一个非阻塞I/O的例子

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

Java网络编程从入门到精通(32):一个非阻塞I/O的例子2011-01-13 BlogJava 银河使者为了使读者更好地理解非阻塞I/O,本节给出了一个简单的例子用来演示如何将非阻塞I/O应用到网络程序中。读者可以先不必管这个例子的具体细节。因为这个例子的主要目的并不是讲解非阻塞I/O的使用,而是先让读者对非阻塞I/O有一个笼统的感性认识。在看完这个例子后,读者可能会有很多疑问,在本章后面的部分将会逐渐揭开这些迷团。这个例子的主要功能是访问新浪网,并将...
Java网络编程从入门到精通(33):非阻塞I/O的缓冲区(Buffer)

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

Java网络编程从入门到精通(33):非阻塞I/O的缓冲区(Buffer)2011-01-13 BlogJava 银河使者如果将同步I/O方式下的数据传输比做数据传输的零星方式(这里的零星是指在数据传输的过程中是以零星的字节方式进行的),那么就可以将非阻塞I/O方式下的数据传输比做数据传输的集装箱方式(在字节和低层数据传输之间,多了一层缓冲区,因此,可以将缓冲区看做是装载字节的集装箱)。大家可以想象,如果我们要运送比较少的货物,用集装箱好象有点不太合算,而...
<< 111 112 113 114 115 116 117 118 119 120 >>