一个简单的demo,实现Java socket文件传输。线程就不写了,只为了实现文件传输。
前面四个字节表示文件大小(长度),后面为数据体,数据体往后五个字节表示文件后缀名,后缀名超过五个字节的,则为二进制文件,丢弃文件后缀。
服务端接收
下面是服务端代码:
package receptionData;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
public class Test {
public static void main(String[] args) {
try {
ServerSocket s = new ServerSocket(8896);
Socket sc = s.accept();
InputStream in = sc.getInputStream();
int t = 1;
while(true){
byte[] lData = new byte[4];
in.read(lData);
int length = byteArrayToInt(lData);
System.out.println("文件大小:"+length+"字节");
byte[] dt2 = new byte[length];
readData(in,dt2);
byte[] type = new byte[5];
in.read(type);
String typeStr = new String(type);
System.out.println("文件类型:"+typeStr.trim());
File of =