您的位置:首页 > 理论基础 > 计算机网络

黑马程序员_网络编程

2011-09-30 12:59 330 查看
----------------------
android培训、java培训、期待与您交流! ----------------------

1.在TCP/IP协议栈中,有两个高级协议是网络应用程序编写者应该了解的,他们是TCP:传输控制协议和UDP:用户数据报协议。

(1)TCP:需要建立连接。通过三次握手完成连接, 在连接中进行大数据量的传输,是可靠协议,但是效率低。

(2)UDP:将数据及源和目的封装成数据包中,不需要建立连接,速度快,每个数据报的大小在限制在64K内。因无连接,是不可靠协议。

2.Socket

(1)Socket就是为网络服务提供的一种机制。

(2)通信的两端都有Socket。

(3)网络通信其实是Socket间的通信。

(4)数据在连个Socket间通过IO传输。

3.UDP

DatagramSocket类:

 

构造函数 :public DatagramSocket()   如果UDP不用事先接收对方发送的数据而是主动先给对方发送数据  系统会自动分配未被使用的端口号

public DatagramSocket(int port)  UDP有可能要先接收对方发来的数据

public DatagramSocket(int port,InetAddress laddr)  明确指定程序发送和接收数据的IP地址

 

close() 方法 释放系统为DatagramSocket对象所保留的资源

send(DatagramPacket p)

receive(DatagramPacket p)

 

DatagramPacket类构造函数:

Public DatagramPacket(byte[] buf,int length) 接收

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

 下面为例子:

 class UdpSend

 {

    public static void main(String[] args) throws Exception

    {

     DatagramSocket ds=new DatagramSocket();//创建udp服务,通过DatagramSocket对象。

     //确定数据,并封装成数据包。

     byte[] buf="udp ni hao".getBytes();

     DatagramPacket dp=new DatagramPacket(buf,buf.length,InetAddress.getByname("192.168.1.254"),10000);

     ds.send(dp);//通过Socket服务,将已有的数据包发送出去,通过send方法。

     ds.close();//关闭资源。

    }

  }

  class UdpRece

  {

   public static void main(String[] args) throws Exception

   {

     //1.创建udp socket,建立端点。

     DatagramSocket ds=new DatagramSocket(10000);

     //2.定义数据包,用于存储数据。

     byte[] buf=new byte[1024];

     DatagramPacket dp=new DatagramPacket(buf,buf.length);

     //3.通过服务的receive方法将收到数据存入数据包中。

     ds.receive(dp);

     //4.通过数据包的方法获取其中的数据。

     String ip=dp.geetAddress().getHostAddress();

     String data=new String(dp.getData(),0,dp.getLength());

     int port=dp.getPort();

     System.out.println(ip+"~~~"+data+"~~~"+port);

     //5.关闭资源 

     ds.close();

   }

  }

 ----------------------
android培训、java培训、期待与您交流! ---------------------- 详细请查看:http://edu.csdn.net/heima
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息