网络编程

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

两个重要的通信协议的特点:

UDP:

       1.面向无连接

       2.每次传输数据封装成数据包,且限定最大为64K

       3.是不可靠协议,如未建立链接传输的数据丢失

       4.传输速度快

      

TCP:

       1.传输数据须建立连接,形成传输通道

       2.在通道中进行大数据量的传输

       3.通过三次握手建立连接,是可靠的传输协议

       4.相比UDP效率稍低

 

DatagramSocket类:用于创建收,发数据报的socket对象

构造方法:DatagramSocketds = new DatagramSocket(8888/*指定端口号*/);

它既有接受数据报的方法也有发送数据报的方法

发送:public voidsend(DatagramPacketp);

接收:public voidreceive (DatagramPacketp);

 

DatagramPacket类,用于封装数据

用于发送数据:DatagramPacket  dp    =     new DatagramPacket(buf,buf.length,InetAddress.getByName("192.168.1.254"),10000);

第一个参数用于指定存放数据报的字节数组,第二个参数指定数据报的数据长度,第三个参数指定数据报要发送到的目标地址,第四个指定目标端口号。

 

用于接收数据:DatagramPacket  dp    =     new DatagramPacket(buf,buf.length);

第一个参数指定存放数据报的字节数组,第二个参数指定数据报长度

取得数据后可以用DatagramPacket的方法获取数据报里的数据,常用的方法有:

getAddress()//得到地址

getPort()//得到端口

getData()//得到数据

getLength()//得到数据长度

 

Socket类:创建基于TCP协议的客户端服务

Socket s = newSocket("192.168.1.254",10003); //创建客户端的socket服务。指定目的主机和端口

Socket中封装了流,用getOutputStream()和getInputStream()获取流用于数据通讯。

OutputStream out = s.getOutputStream();

InputStream out = s.getInputStream();

 

SeverSocket类:创建服务端为客户端服务服务

ServerSocket ss = new ServerSocket(10003);

服务端通讯需要先获取客户端的流,用客户端的流于客户端通讯

 

Socket s = ss.accept();//通过accept方法获取连接过来的客户端对象

 

//获取客户端的流

OutputStream out = s.getOutputStream();

InputStream out = s.getInputStream();

 

最后不要忘了需要关闭客户端资源

------- android培训java培训、期待与您交流! ----------  详细请查看: http://edu.csdn.net/heima/
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值