服务热线:13616026886

技术文档 欢迎使用技术文档,我们为你提供从新手到专业开发者的所有资源,你也可以通过它日益精进

位置:首页 > 技术文档 > JAVA > 新手入门 > 基础入门 > 查看文档

用java编写简单的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();
  }
  }

扫描关注微信公众号