5-8万年薪顶级嵌入式,京沪深就业地 浅谈并行编程中的任务分解模式
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Java >  Eclipse

浅谈Udp的分布式编程,初学java者适用

楼主mihaisheng((虫子与树叶))2006-02-04 19:46:21 在 Java / Eclipse 提问

浅谈eclipse下Udp的分布式编程  
  Udp是一种面向无连接的通信协议,该协议使得数据传输的速度得到大幅度的提高。以下这个实例采用了udp协议的方式完成客户端向服务器端发送数据的这样一个简单的过程。在客户端与服务器端传输的数据被封装在一个叫做数据报的对象当中—DatagramPacket,数据报确定了需要发送的数据以及发送的去向。  
  首先需要了解客户端的流程:  
  1、创建DatagramSocket对象,DatagramSocket区别于Tcp方式下的socket对象。  
  DatagramSocket   s=new   DatagramSocket();  
   
  2、定义一个字符串类型的变量,用于确定需要发送的数据。  
  String   sndmsg;   sndmsg=new   String("hi   i   am   client,are   you   server?");  
   
  3、将上述字符串类型的数据通过特定的方法转化为DatagramPacket类型的数据。  
  byte[]   buf=new   byte[sndmsg.length()+1];  
  sndmsg.getBytes(0,sndmsg.length(),buf,0);  
  snddata=new   DatagramPacket(buf,buf.length,hostaddress,2006);  
  hostaddress为远程服务器名称,类型为InetAddress,2006表示服务器上的端口号  
   
  4、利用DatagramSocket对象来发送建立好的DatagramPacket数据报。  
  s.send(snddata);  
   
  5、在此过程中,不要忘记对异常进行处理。  
  比如,SocketException、IOException、UnkownException。  
   
  接下来为服务器端的工作流程:  
  1、首先也需要建立一个socket对象,并且连接到本机的某一个端口:  
  DatagramSocket   socket;  
  socket=new   DatagramSocket(2006)  
   
  2、定义DatagramPacket类型的对象,在此,其用途为保存从客户端发送来的数据  
  byte[]   buf=new   byte[1000];  
  DatagramPacket   dp=new   DatagramPacket(buf,buf.length);  
   
  3、socket的receive方法用于等待客户端数据的到来,而一直处于挂起状态。但仅调用一次receive方法只能接收一个数据报,因而可以将receive放入一个循环中,不断接收来自于对方的数据报  
   
  4、将接收来的数据报转化为字符串形式,以便于显示结果  
  getmsg=new   String(dp.getData(),0,dp.getLength());  
   
  以下为完整的源程序:  
  省略 问题点数:0、回复次数:0Top

相关问题

  • 初学者多层分布式的问题
  • 分布式应用程序初学者的困惑(求助)
  • 初学分布式系统开发,遇到一个小问题,能帮我看看吗?
  • 如果一个人初学者要建一个最简单的多层分布式系统要花多少时间?
  • 分布式查询?????????
  • 分布式系统
  • 分布式报表问题
  • 分布式事务问题
  • 分布式应急系统
  • 分布式应急系统

关键词

  • 数据
  • 服务器
  • 客户
  • 协议
  • socket
  • sndmsg
  • datagramsocket
  • datagrampacket
  • 字符串
  • 对象

得分解答快速导航

  • 帖主:mihaisheng

相关链接

  • CSDN Java频道
  • Java类图书
  • Java类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
x 提问