- Java code
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"); } }
------解决方案--------------------
- Java code
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要分包的嘛,我了个去