1、IP地址和InetAddress类
java支持internet协议由ftp、telnet、www等,都在java.net。
java.net.InetAddress类的对象用于存储IP地址和域名
getByName (String s) //获得一个InetAddress对象,其中包含域名和IP地址
String getHostName () //获得InetAddress对象的域名
String getHostAddress () //获得InetAddress对象的IP地址
getLocalHost () //获得一个InetAddress对象,其中含有本地机的域名和IP地址
try
{
InetAddress addr = InetAddress.getByName ("www.fudan.edu.cn");
String domainName = addr.getHostName ();
String IPName = addr.getHostAddress ();
}
catch (UnknownHostException e)
{}
2、统一资源定位符 URL
URL格式:<METHOD>://<HOSTNAME:PORT>/<PATH>/<FILE>
(1)java.net.URL类
构造器 URL (String s) //s指出网络中的一个资源。
URL url;
try
{
url = new URL("http://www.fudan.edu.cn:80");
}
catch (MalformedURLException e)
{}
(2)URLConnection类,用于接受和发送信息
程序获得一个URLConnection对象,相当于完成对指定URL的一个http链接。
URL mu = new URL("http://www.sun.com/);
URLConnection muC = mu.openConnection();
URLConnection类的方法:
getOutputStream () //获得向远程主机发送信息的OutputStream对象
getInputStream () //获得从远程主机获取信息的InputStream对象
connect () //设置网络链接
(3)信息的发送和接收
例子:以数据流方式读取网页内容
public void readByURL (String urlName)
{
try
{
URL url = new URL (urlName);
URLConnection tc = url.openConnection ();
tc.connect ();
InputStreamReader in = new InputStreamReader(tc.getInputStream ());
BufferReader dis = new BufferedReader (in);
String inLine;
String s = "";
while ((inLine = dis.readLine ()) != null)
{
s += inLine;
}
dis.close ();
}
catch (MalformedURLException e)
{}
}
3、客户机-服务器 模式
socket,套接字:端口号和IP地址的组合
java中套接字有2种:
server端,ServerSocket类支持底层的网络通信
client端,Socket类支持网络的底层通信
实现通信方式有2种:流式socket(面向链接的,即TCP)、数据报式socket(无链接,即UDP)
流式socket原理:
在Client程序和Server程序之间建立链接通信的通道。每个socket可以进行读写两会总操作。
对任何一端,与对方通信会话的过程是:
建立socket链接>>获得输入/输出流>>读/写数据>>通信完成后关闭socket
构造器方法Socket (String host, int port) 建立客户端到服务端的套接字对象,
此后用getInputStream () 或getOutinputStream ()
构造起ServerSocket (int port) 建立接受来自客户机端的服务器套接字对象,
服务器端监听指定端口,收到Client程序发出的服务请求时,船舰一个套接字对象,与改client程序通信:
try
{
Socket sc = serverSocket.accept ();
}
catch (IOException e)
{}
撤销服务:
sc.close ();