JAVA UDP 图像传输实例.docx

上传人:b****6 文档编号:5814980 上传时间:2023-01-01 格式:DOCX 页数:8 大小:15.84KB
下载 相关 举报
JAVA UDP 图像传输实例.docx_第1页
第1页 / 共8页
JAVA UDP 图像传输实例.docx_第2页
第2页 / 共8页
JAVA UDP 图像传输实例.docx_第3页
第3页 / 共8页
JAVA UDP 图像传输实例.docx_第4页
第4页 / 共8页
JAVA UDP 图像传输实例.docx_第5页
第5页 / 共8页
点击查看更多>>
下载资源
资源描述

JAVA UDP 图像传输实例.docx

《JAVA UDP 图像传输实例.docx》由会员分享,可在线阅读,更多相关《JAVA UDP 图像传输实例.docx(8页珍藏版)》请在冰豆网上搜索。

JAVA UDP 图像传输实例.docx

JAVAUDP图像传输实例

JAVAUDP图像传输实例

Toolkit.getDefaultToolkit().

 

JAVAUDP图像传输实例

2007-04-1810:

191908人

前言:

UDP方式传递数据分两个步骤,第一步构建UDP数据包,第二步创建UDPSOCKET

发送数据的时候:

构建UDP数据包需要写好目的IP地址,以及目的主机的端口号

DatagramPacketdata=newDatagramPacket(b,b.length,address,7000);

发送数据包创建SOCKET可以不用指定端口号

DatagramSocketmailSend=newDatagramSocket();

接收数据的时候:

创建UDP数据包不需要写IP地址和端口号

pack=newDatagramPacket(b,b.length);

接收数据包时,创建SOCKET必须写端口号

mailReceive=newDatagramSocket(7000);本例子是通过UDP方式,从服务器端发送一幅图到客户端,客户端显示出来编译后运行javaServer,然后再开一个cmd窗口运行javaClient。

点击client窗口的getpicture就可以了

注意图片文件a.jpg需要和编译好的类放在一起。

/***//**

*@(#)Server.java

*

*Serverapplication

*

*@author

*@version1.002007/4/16

*/

import.*;

importjava.io.*;

publicclassServer...{

publicstaticvoidmain(String[]args)...{

DatagramPacketpack=null;

DatagramSocketmailReceive=null;

ServerThreadthread;

byteb[]=newbyte[8192];

InetAddressaddress=null;

System.out.println("serverisrunning");

pack=newDatagramPacket(b,b.length);

try...{

mailReceive=newDatagramSocket(7000);

System.out.println("socketbuild");

}

catch(IOExceptione)

...{

e.printStackTrace();

}

while(true)...{

try...{

mailReceive.receive(pack);

address=pack.getAddress();

System.out.println("getclientaddress:

"+address);

}

catch(IOExceptione)...{

System.out.println("errorishere");

}

if(address!

=null)

...{

System.out.println("getaddress");

newServerThread(address).start();

}

else

...{

System.out.println("can'tgetaddress");

continue;

}

}

}

}

classServerThreadextendsThread

...{

InetAddressaddress;

DataOutputStreamout=null;

DataInputStreamin=null;

Strings=null;

ServerThread(InetAddressaddress)

...{

this.address=address;

}

publicvoidrun()

...{

FileInputStreamin;

byteb[]=newbyte[8192];

try...{

in=newFileInputStream("a.jpg");

intn=-1;

while((n=in.read(b))!

=-1)

...{

DatagramPacketdata=newDatagramPacket(b,b.length,address,5678);

DatagramSocketmailSend=newDatagramSocket();

mailSend.send(data);

System.out.println("readimage");

}

in.close();

byteend[]="end".getBytes();

DatagramPacketdata=newDatagramPacket(end,end.length,address,5678);

DatagramSocketmailSend=newDatagramSocket();

mailSend.send(data);

System.out.println("sendallimagedataok");

}

catch(Exceptione)...{

e.printStackTrace();

}

}

}

/***//**

*@(#)Client.java

*

*

*@authorpkgold1

*@version1.002007/4/16

*/import.*;

importjava.awt.*;

importjava.awt.event.*;

importjava.io.*;publicclassClientextendsFrameimplementsRunnable,ActionListener...{

Buttonb=newButton("getpicture");

ImageCanvascanvas;

publicClient()...{

super("Iamaclient");

setSize(600,600);

setVisible(true);

b.addActionListener(this);

add(b,BorderLayout.NORTH);

canvas=newImageCanvas();

add(canvas,BorderLayout.CENTER);

Threadthread=newThread(this);

validate();

addWindowListener(newWindowAdapter()

...{

publicvoidwindowClosing(WindowEvente)...{

System.exit(0);

}

});

thread.start();

}

publicvoidactionPerformed(ActionEventevent)...{

byteb[]="pleasesendpicture".trim().getBytes();

try...{

InetAddressaddress=InetAddress.getByName("localhost");

DatagramPacketdata=newDatagramPacket(b,b.length,address,7000);

DatagramSocketmailSend=newDatagramSocket();

mailSend.send(data);

System.out.println("clientsenddata");

}

catch(Exceptione)...{

e.printStackTrace();

}

}

publicvoidrun()

...{

DatagramPacketpack=null;

DatagramSocketmailReceive=null;

byteb[]=newbyte[8192];

ByteArrayOutputStreamout=newByteArrayOutputStream();

try...{

pack=newDatagramPacket(b,b.length);

mailReceive=newDatagramSocket(5678);

System.out.println("reayreceivedata");

}

catch(Exceptione)...{

e.printStackTrace();

}

try...{

while(true)...{

mailReceive.receive(pack);

Stringmessage=newString(pack.getData(),0,pack.getLength());

if(message.startsWith("end"))

...{

System.out.println("getalldataok");

break;

}

out.write(pack.getData(),0,pack.getLength());

System.out.println("Iamgettingdata");

}

byteimagebyte[]=out.toByteArray();

out.close();

Toolkittool=getToolkit();

Imageimage=tool.createImage(imagebyte);

canvas.setImage(image);

System.out.println("paintimage");

canvas.repaint();

validate();

}

catch(IOExceptione)...{

e.printStackTrace();

}

}

publicstaticvoidmain(Stringargs[])

...{

newClient();

}

}

importjava.awt.*;

importjava.awt.event.*;

classImageCanvasextendsCanvas

...{

Imageimage=null;

...{

setSize(200,200);

}

publicvoidpaint(Graphicsg)...{

if(image!

=null)

...{

g.drawImage(image,0,0,this);

}

else

...{

this.image=image;

}

}

publicvoidsetImage(Imageimage)

...{

this.image=image;

}

}

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 经管营销

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1