哥们儿能把代码贴全一点吗 ?我也在做UDP广播发送图片 http://bbs.csdn.net/topics/390933843
解决方案 »
- 找了一圈,请教一下START_STICKY
- 谁知道Launcher怎么实现?
- android 硬盘挂载的代码是在vold里面吗?
- Android下如何使用Oprofile,Opcontrol --dump没有任何输出,怎么办?
- 若购真机测试的问题?
- 关于Alarmmanager计时不准的问题
- android一个菜鸟问题:相机拍照如何设置无论方向如何,拍出来的照片都是横向的?
- 百度地图 站点查询
- 微信分享问题
- OPPO手机恢复出厂设置后又root了,有大神能找回通讯录吗
- R cannot be resolved to a variable 啥情况啊
- UDP广播发送图片,只能发送几K大小的图片,求助!
import java.awt.*;
import java.io.File;
import java.io.FileInputStream;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;import javax.imageio.ImageIO;
public class udp_server {
public static void main(String args[]) throws Exception {
Image[] images = null;
Boolean stop=true;
int index=0;
// images=ad()
// images=getToolkit.getImage("p1.jpg");
DatagramSocket socket = new DatagramSocket();
String filePath0 = "D:/image/a.jpg";
String filePath1 = "D:/image/g1.gif";
String filePath2 = "D:/image/g2.gif";
String filePath3 = "D:/image/g3.gif";
String filePath4 = "D:/image/g4.gif";
String filePath5 = "D:/image/g5.gif";
String filePath6 = "D:/image/g6.gif";
String filePath7 = "D:/image/g7.gif";
String filePath8 = "D:/image/g8.gif";
String filePath9 = "D:/image/g9.gif";
String filePath10 = "D:/image/g10.gif";
String filePath11 = "D:/image/g11.gif";
String filePath12 = "D:/image/g12.gif";
String filePath13 = "D:/image/g13.gif";
String filePath14 = "D:/image/g14.gif";
String filePath15 = "D:/image/g15.gif";
String filePath16 = "D:/image/g16.gif";
String filePath17 = "D:/image/g17.gif";
String filePath18 = "D:/image/g18.gif";
String filePath19 = "D:/image/g19.gif";
String[] addr=new String[10];
addr[0]="D:/image/a.jpg";
addr[1]="D:/image/g1.jpg";
addr[2]="D:/image/g2.jpg";
addr[3]="D:/image/g3.jpg";
addr[4]="D:/image/g4.jpg";
/* File fi = new File(filePath0);
int n=100; System.out.println("文件长度:" + (int) fi.length());
System.out.println("Port:" + socket.getLocalPort());
System.out.println("IPAddress:" + socket.getLocalAddress()); */
while(stop)
{
File fi = new File(addr[index]);
int n=0;
int k=1;
System.out.println("文件长度:" + (int) fi.length());
// System.out.println("Port:" + socket.getLocalPort());
// System.out.println("IPAddress:" + socket.getLocalAddress());
FileInputStream Fs=new FileInputStream(addr[index]);
System.out.println("addr["+index+"]:"+addr[index]);
InetAddress address1 = InetAddress.getByName("192.168.253.51");
byte buf[]=new byte[2048];
while((Fs.read(buf))!=-1)
{
DatagramPacket packet1 = new DatagramPacket(buf,0, buf.length, address1,53560);
socket.send(packet1);
System.out.println("第K:"+k+"发送!:");
k++;
}
// Fs.read(buf);
// InetAddress address2 = InetAddress.getByName("192.168.253.51");
// DatagramPacket packet1 = new DatagramPacket(buf,0, buf.length, address1,53560);
// DatagramPacket packet2 = new DatagramPacket(buf, buf.length, address2,55555);
// socket.send(packet1);
// socket.send(packet2);
System.out.println("第"+index+"次发送成功!");
if(index==4)
{
System.out.print("发送完成!");
stop=false;
}
index++;
Thread.sleep(5000);
}
/* byte buf[] = new byte[1024];
DatagramPacket packet = new DatagramPacket(buf, buf.length);
socket.receive(packet);
socket.disconnect();
System.out.println("Received Data:" + new String(packet.getData(), 0, packet.getLength()));
System.out.println("Data:"+new String(packet.getData()));
System.out.println("Length:" + packet.getLength());
System.out.println("Offset:" + packet.getOffset());
System.out.println("Port:" + packet.getPort());
System.out.println("Address:" + packet.getAddress());
System.out.println("SocketAddress:" + packet.getSocketAddress()); */
}
}
那你第一张图片怎么恢复的呢??我找了很多都不是UDP的。。 加个QQ探讨一下吧
int MSG_LEN = 8192;
DatagramPacket recvPacket;
public void run() {
try {
DatagramSocket msg_socket =new DatagramSocket(34321);
recvBuffer = new byte[MSG_LEN];
recvPacket = new DatagramPacket(recvBuffer, recvBuffer.length);
//System.out.println("sdf");
System.out.println("wrong?");
msg_socket.receive(recvPacket);
//view.setText(new String(recvPacket.getData()));
//view.setText(new String(recvPacket.getData()));
//view.setText("w:"+text.getText().toString());
Message msgMessage=Message.obtain();
msgMessage.obj = recvPacket.getData();
msgMessage.what = IS_FINISH;
handler.sendMessage(msgMessage);
} catch (SocketException e) {
//Toast.makeText(MainActivity.this, e.toString(), Toast.LENGTH_LONG).show();
e.printStackTrace();
} catch (IOException e) {
//Toast.makeText(MainActivity.this, e.toString(), Toast.LENGTH_LONG).show();
e.printStackTrace();
}
我的代码是这样,现在只能接一个包吧应该。所以想问一下怎么用循环接收这张图片的这些UDP包