服务热线: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();

}

}

(t007)


扫描关注微信公众号