龙盟编程博客 | 无障碍搜索 | 云盘搜索神器
快速搜索
主页 > 软件开发 > JAVA开发 >

用Java编写简单的UDP网络通信程序

时间:2009-12-23 15:42来源:未知 作者:admin 点击:
分享到:
Java中封装了大量的socket API,为编写网络通信程序提供了极大的方便。在计算机网络的学习中,大家都已熟练把握了TCP/UDP的基本原理,在此不在赘述。仅给出接收端和发送端的源代码,

  Java中封装了大量的socket API,为编写网络通信程序提供了极大的方便。在计算机网络的学习中,大家都已熟练把握了TCP/UDP的基本原理,在此不在赘述。仅给出接收端和发送端的源代码,供大家讨论学习。发送端代码如下:
  
  import java.io.*;
  import java.lang.*;
  import java.net.*;
  public class UClient
  {
  private DatagramSocket cli;
  private DatagramPacket pac;
  private byte sb[];
  private String sen;
  public uclient()
  {
  Init();
  }
  public void Init()
  {
  try
  {
  //指定端口号,避免与其他应用程序发生冲突
  cli=new DatagramSocket(10002);
  sb=new byte[1024];
  sen="UDP方式发送数据";
  sb=sen.getBytes();
  pac=new DatagramPacket(sb,sb.length,
  InetAddress.getByName("localhost"),10005);
  cli.send(pac);
  }
  catch(SocketException se)
  {
  se.printStackTrace();
  }
  catch(IOException ie)
  {
  ie.printStackTrace();
  }
  }
  public static void main(String args[])
  {
  new uclient();
  }
  }
  
  接收端数据:
  
  import java.io.*;
  import java.lang.*;
  import java.net.*;
  public class userve
  {
  private DatagramSocket ser;
  private DatagramPacket pac;
  private byte rb[];
  private String rev;
  public userve()
  {
  Init();
  }
  public void Init()
  {
  try
  {
  ser=new DatagramSocket(10005);
  rb=new byte[1024];
  pac=new DatagramPacket(rb,rb.length);
  rev="";
  int i=0;
  while(i==0)
  //无数据,则循环
  {
  ser.receive(pac);
  i=pac.getLength();
  //接收数据
  if(i>0)
  {
  //指定接收到数据的长度,
  可使接收数据正常显示,开始时很轻易忽略这一点
  rev=new String(rb,0,pac.getLength());
  System.out.println(rev);
  i=0;//循环接收
  }
  }
  }
  catch(Exception e)
  {
  e.printStackTrace();
  }
  }
  public static void main(String args[])
  {
  new userve();
  }
  }
  
收藏文章
表情删除后不可恢复,是否删除
取消
确定
图片正在上传,请稍后...
评论内容为空!
还没有评论,快来抢沙发吧!

热评话题

按钮 内容不能为空!
立刻说两句吧! 查看0条评论
精彩图集

赞助商链接