62,623
社区成员
发帖
与我相关
我的任务
分享
import java.io.*;
import java.net.*;
public class SerSocket {
public static void main(String[] args) {
File sourceFile=new File("Source.gif");
int bufferLength = 1024;
long fileLength = sourceFile.length();
byte[] buffer = new byte[bufferLength];
ServerSocket ss = null;
Socket socket = null;
OutputStream sOutputStream = null;
FileInputStream fInputStream = null;
try {
ss = new ServerSocket(8888);
System.out.println("启动");
socket = ss.accept();
System.out.println("已连接客户端");
sOutputStream = socket.getOutputStream();
fInputStream = new FileInputStream(sourceFile);
System.out.println("已传送:");
int len = 0;
long fileL = 0;
do{
len = fInputStream.read(buffer);//文件读到buffer
if(len != -1){
fileL += len;
sOutputStream.write(buffer,0,len);//buffer写入socket流
System.out.print("\b\b\b"+fileL*100/fileLength+"%");
}
}while(len != -1);
} catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
try {
ss.close();
socket.close();
sOutputStream.close();
fInputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
import java.io.*;
import java.net.*;
public class Clisocket {
public static void main(String[] args) {
Socket socket = null;
InputStream sInputStream = null;
FileOutputStream fOutputStream = null;
int bufferLength = 2048;
byte[] buffer = new byte[bufferLength];
File aimFile = new File("Aim.gif");
try {
socket = new Socket("localhost", 8888);
System.out.println("已连接服务端");
sInputStream = socket.getInputStream();
fOutputStream = new FileOutputStream(aimFile);
System.out.println("正在接受...");
int len = 0;
do{
len = sInputStream.read(buffer);//socket流读入buffer
if(len != -1)
fOutputStream.write(buffer,0,len);//buffer写入文件
}while(len != -1);
System.out.println("完毕");
} catch (UnknownHostException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
try {
socket.close();
sInputStream.close();
fOutputStream.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}