首页 > 代码库 > 网络编程入门(上)

网络编程入门(上)

1.网络通信的协议

      TCP/IP协议:分为四层应用层,传输层,网络层,链路层.

          网络层是TCP/IP协议的核心,主要用于将传输的数据进行分组,将分组数据发送到目标计算机或网络

          传输层:使用网络进行通信,可以使用TCP/IP协议,也可以用UDP协议

      UDP协议:

2.JDK中的API:

      InetAddress:用于封装IP地址的类

            常用方法:static  InetAddress  getByName(String host);//给定主机名确定IP地址

                  static InetAddress  getLocalHost();//返回本地主机

                  String getHostName();//返回IP地址的主机名

                  String getHostAddress();//返回IP地址字符串

      DatagramPacket封装数据,接收的地址和端口

         构造函数

          DatagramPacket(byte[]buf,int length)用来接收长度为length的数据包

          DatagramPacket(byte[]buf,int length,InetAddress address,int port)

                构造数据报包,将长度为length的包发送到指定主机的指定端口

          方法:

            InetAddress getAddress();//返回发送端IP,接收端使用

            int getPort();//返回发送端端口号,拆包时使用

            byte[]  getData();返回数据缓冲区

            int  getLength();返回数据的长度

        DatagremSocket套接字

              用来发送DatagremPacket的对象

            构造函数:

              DatagremSocket();//用于发送端

              DatagremSocket(int port);//接收端的对象,指定端口监听端口

             方法:

               void  receive(DatagremPacket p);//从此套接字接收数据报包

               void send(DatagremPacket p);//从此套接字发送数据报包

              

3.UDP协议:

    UDP协议:是无连接通信协议,即传输数据时,发送端和接收端不需要建立逻辑连接

        消耗资源小,通信率高,用于音频,视频,视频会议.会丢失一部分数据.

4.TCP协议:

      TCP协议:面向连接的通信协议,能保证数据的安全性.即传输数据前,发送端和接收端需要先建立逻辑连接,然后才能传输数据

    每次连接的创建都需要经过"三次握手".

      第一次握手:客户端向服务端发送连接请求

      第二次握手:服务端回送一个响应,通知客户端收到了连接请求

      第三次握手:客户端再次向服务端发送确认信息,确认连接

 

网络编程入门(上)