日期:2014-05-20 浏览次数:21128 次
public class jieshou {
/**
* @param args
* @throws SocketException
* @throws IOException
*/
public static void main(String[] args) throws SocketException, Exception {
// TODO Auto-generated method stub
DatagramSocket socket;
socket = new DatagramSocket(10000);
byte[] buf = new byte[108421];
OutputStream fos = new BufferedOutputStream(new FileOutputStream("C:\\Users\\Administrator\\Desktop\\jieshou.jpg"));
while(true)
{
DatagramPacket packet = new DatagramPacket(buf,108421);
try{
socket.receive(packet);
fos.write(packet.getData(), 0, packet.getLength());
}
catch (Exception e1)
{
try{
socket.close();
fos.flush();
fos.close();
}catch(Exception iee){System.out.println("close :"+e1);}
}
break;
}
System.out.println("server_finish");
}
}
package com.ssj.test; import java.io.BufferedOutputStream; import java.io.FileOutputStream; import java.io.OutputStream; import java.net.DatagramPacket; import java.net.DatagramSocket; import java.net.SocketException; public class Test { public static void main(String[] args) throws SocketException, Exception { // TODO Auto-generated method stub DatagramSocket socket; socket = new DatagramSocket(10000); byte[] buf = new byte[108421]; OutputStream fos = new BufferedOutputStream(new FileOutputStream( "f:/temp/jieshou.jpg")); while (true) { DatagramPacket packet = new DatagramPacket(buf, 108421); try { socket.receive(packet); fos.write(packet.getData(), 0, packet.getLength()); } catch (Exception e1) { try { socket.close(); fos.flush(); fos.close(); } catch (Exception iee) { System.out.println("close :" + e1); } } break; } System.out.println("server_finish"); } }
------解决方案--------------------
这个是网络和机器决定的ip包最大包长
tcp/ip协议为64k 你一下传200K还不挂?
>64K要分包的嘛,我了个去