ASP源码.NET源码PHP源码JSP源码JAVA源码DELPHI源码PB源码VC源码VB源码Android源码

黑马程序员——Java学习日记之网络编程

来源:网络整理     时间:2015-08-06     关键词:

本篇文章主要介绍了"黑马程序员——Java学习日记之网络编程",主要涉及到方面的内容,对于Javajrs看球网直播吧_低调看直播体育app软件下载_低调看体育直播感兴趣的同学可以参考一下:  ——- android培训、java培训、期待与您交流! ———-一、网络通讯要素1、IP地址:<1>网络中设备的标识<2>不易记忆,...

 ——- android培训、java培训、期待与您交流! ———-

一、网络通讯要素

1、IP地址:

<1>网络中设备的标识

<2>不易记忆,可用于主机名

<3>本地回环地址:127.0.0.1 主机名:localhost

2、端口号

<1>用于标识进程的逻辑地址

<2>有效的端口:0-65535,其中0-1024由系统使用或被保留

3、传输协议。

<1> 通讯的规则

<2>常见协议:TCP,UDP

二、传输协议

1、UDP:是面向无连接,明确了对方的端口,无论在不在网上,只管传输,不在就会丢失数据。只求速度,应用于网络视频会议和聊天等应用程序中。

<1>协议特点:

     a、面向无连接,即将数据及源和目的封装成数据包中,不建立链接的发送

     b、每个数据包的大小限制在64K之内

     c、因无连接,是不可靠的协议

     d、不建立连接,速度快。

<2>方法:

    1)创建 UDPSocket发送服务对象:

          DatagramSocket(),不指定端口。DatagramSocket(int port),指定端口。

    2)发送:void send(DatagramPacket p)

    3)接收:void receive(DatagramPacket p)

步骤:

<3>发送数据:

    1)建立UDPSocket服务,在此无需指定端口,也可以将端口加入。

    2)提供数据,并将数据封装到数据包中。

    3)通过socket服务的发送功能,将数据包发送出去。

    4)关闭资源。

<4>接收数据:

    1)定义UDPSocket服务。通常会监听一个端口,其实就是给这个接收网路应用程序定义数字标识,方便于明确哪些数据过来该应用程序可以处理。

     2)定义一个数据包,用来存储接收到的字节数据,因为数据包对象中有更多功能可以提取字节数据中的不同数据信息。

    3)通过socket服务的receive方法接收到的数据存入已定义好的数据包中。

    4)通过数据包对象的特有功能,将这些不同的数据取出,打印在控制台上。

     5)关闭资源。

<5>在定义接收数据的方法中,仍会在DatagramSocket构造函数中传入DatagramPacket的参数,这是因为收到的数据太多,需要解析,通过将数据封装成对象,易于解析,所以需要传入参数。

2、TCP:是面向连接的,必须连接成功才能传输数据,应用于下载等程序上。

   <1>协议特点:

     a、面向连接,在建立连接后,形成传输数据的通道

     b、在连接中进行大数据量的传输

     c、通过三次握手完成连接,是可靠的协议

     d、必须建立连接,效率稍慢

        三次握手:第一次本方发送请求,第二次对方确认连接,第三次本方再次确认连接成功。

<2>方法:

    1)创建客户端对象:

          Socket():创建空参数的客户端对象,一般用于服务端接收数据

          Socket(String host,int port),指定要接收的IP地址和端口号

    2)创建服务端对象:ServerSocket(int port):指定接收的客户端的端口

    3)Socket accept():监听并接受到此套接字的连接

    4)void shutdownInput():此套接字的输入流至于“流的末尾”

    5)void shutdownOutput():禁用此套接字的输出流

    6)InputStream getInputStream():返回此套接字的输入流,Socket对象调用

    7)OutputStream getOutputStream():返回套接字的输出流,Socket对象调用

三、客户端基本思路:

1、 客户端需要明确服务器的IP地址以及端口,这样才可以试着去建立连接,如果连接失败,会出现异常。

2、连接成功,说明客户端和服务端建立了通道,那么通过IO流就可以进行数据的传输。

3、Socket已经提供了输出流和输入流的对象,可以通过getInputStream()和getOutputStream()方法获得。

4、与服务端完成数据传输后,关闭Socket即可。

//客户端:给服务端发送给一个文本数据。import java.io.*;import java.net.*;classTcpClient
{publicstaticvoid main(String[] args) throws Exception 
  {
        //创建客户端的socket服务。指定目的主机和端口
        Socket s = new Socket("192.168.1.254",10003);
        //为了发送数据,应该获取socket流中的输出流。
        OutputStream out = s.getOutputStream();
        out.write("tcp ge men lai le ".getBytes());
        s.close();
  }
}

四、服务端基本思路:

1、服务端需要明确它要处理的数据是从哪一个端口进入的。

2、当有客户端访问时,它需要明确是哪一个客户端。可通过accept()方法获取要访问的客户端对象,并通过该对象与客户端通过IO流进行数据传输

3、 当该客户端访问结束后,关闭该客户端。

//服务端:定义端点接收数据并打印在控制台上。
class  TcpServer
{
  publicstaticvoidmain(String[] args) throws Exception
  {
        //建立服务端socket服务。并监听一个端口。
        ServerSocket ss = new ServerSocket(10003);
        //通过accept方法获取连接过来的客户端对象。while(true)
    {
        Socket s = ss.accept();
       String ip = s.getInetAddress().getHostAddress();
       System.out.println(ip+".....connected");
         //获取客户端发送过来的数据,那么要使用客户端对象的读取流来读取数据。
       InputStream in = s.getInputStream();
       byte[] buf = newbyte[1024];
       int len = in.read(buf);
       System.out.println(new String(buf,0,len));
       s.close();//关闭客户端.
  }
}

五、URL和URLConnection

1、URL:

    URI:范围更大,条形码也包含于此范围

    URL:范围较小,即域名

2、方法:

    <1>构造函数:URL(String protocol,String host,int port,String file);根据指定 protocol、host、port号和 file 创建 URL对象。

    <2>String getProtocol();获取协议名称

    <3>String getHost();获取主机名

    <4>int getPort();获取端口号

    <5>String getFile();获取URL文件名

    <6>String getPath();获取此URL的路径部分

    <7>String getQuery();获取此URL的查询部,客户端传输的特定信息

版权声明:本文为博主原创文章,未经博主允许不得转载。

以上就介绍了黑马程序员——Java学习日记之网络编程,包括了方面的内容,希望对Javajrs看球网直播吧_低调看直播体育app软件下载_低调看体育直播有兴趣的朋友有所帮助。

本文网址链接:http://www.codes51.com/article/detail_158182.html

相关图片

相关文章