(笔记)网络编程基础--要整理!

来源:互联网 发布:低频治疗仪 知乎 编辑:程序博客网 时间:2024/05/16 11:53

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 ();

 

 

原创粉丝点击