精品主页 | 软件下载 | 系统下载 | 精品导航| 精彩图片 | 转帖工具 | 版主申请 | 影视下载
发新话题
打印

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

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

  


                  














java中封装了大量的socketAPI,为编写网络通信程序提供了极大的方便.

在计算机网络的学习中,大家都已熟练掌握了TCP/UDP的基本原理,在此不在赘述.仅给出接收端和发送端的源代码,供大家讨论和批评.

发送端代码如下:

//只要稍加改进,即可发送数据

importjava.io.*;

importjava.lang.*;

importjava.net.*;

publicclassuclient

{

privateDatagramSocketcli;

privateDatagramPacketpac;

privatebytesb[];

privateStringsen;

publicuclient()

{

Init();

}

publicvoidInit()

{

try

{

//指定端口号,避免与其他应用程序发生冲突

cli=newDatagramSocket(10002);

sb=newbyte[1024];

sen="UDP方式发送数据";

sb=sen.getBytes();

pac=newDatagramPacket(sb,sb.length,InetAddress.getByName("localhost"),10005);

cli.send(pac);

}

catch(SocketExceptionse)

{

se.printStackTrace();

}

catch(IOExceptionie)

{

ie.printStackTrace();

}

}

publicstaticvoidmain(Stringargs[])

{

newuclient();

}

}

接收端数据:

//加以改进代码,可以改变接收方式

importjava.io.*;

importjava.lang.*;

importjava.net.*;

publicclassuserve

{

privateDatagramSocketser;

privateDatagramPacketpac;

privatebyterb[];

privateStringrev;

publicuserve()

{

Init();

}

publicvoidInit()

{

try

{

ser=newDatagramSocket(10005);

rb=newbyte[1024];

pac=newDatagramPacket(rb,rb.length);

rev="";

inti=0;

while(i==0)//无数据,则循环

{

ser.receive(pac);

i=pac.getLength();

//接收数据

if(i>0)

{

//指定接收到数据的长度,可使接收数据正常显示,开始时很容易忽略这一点

rev=newString(rb,0,pac.getLength());

System.out.println(rev);

i=0;//循环接收

}

}

}

catch(Exceptione)

{

e.printStackTrace();

}

}

publicstaticvoidmain(Stringargs[])

{

newuserve();

}

}

TOP

发新话题