62,616
社区成员
发帖
与我相关
我的任务
分享
import java.io.DataInputStream;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
/**
* 本程序通过socket编程实现从客户端发送文件到服务器端
* @author ×××
*/
/**
* 多线程类
*/
class MultiServer extends Thread{
private Socket socket;
private DataInputStream dataIn;
private FileOutputStream out;
int length=0;
byte[] buffer=new byte[1024];
public MultiServer(Socket s)throws IOException{
socket=s;
dataIn= new DataInputStream(socket.getInputStream());
File f = new File("d:\\a.txt");
if (!f.exists())
f.createNewFile();
FileOutputStream out = new FileOutputStream(f);
start();
}
public void run(){
try{
while((length=dataIn.read(buffer))!=-1){
out.write(buffer, 0, length);
}
}catch(IOException e){
e.printStackTrace();
}finally{
try{
out.close();
System.out.println("服务器端文件接收完毕!!!");
socket.close();
}catch(IOException e){
e.printStackTrace();
}
}
}
}
//
public class FileServer {
static final int PORT=5100;
public static void main(String[] a)throws IOException {
// byte[] buffer=new byte[1024];
ServerSocket s = new ServerSocket(PORT);
System.out.println("服务器启动!");
try{
while(true){
Socket socket=s.accept();
try{
new MultiServer(socket);
}catch(IOException e){
socket.close();
e.printStackTrace();
}
}
}catch(IOException e){
e.printStackTrace();
}finally{
s.close();
}
// FileServer fileServer = new FileServer();
// fileServer.sendFile();
}
}
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.IOException;
import java.net.Socket;
/**
* 本程序通过socket编程实现从客户端发送文件到服务器端
* @author ×××
*/
public class FileClient extends Thread {
public static void main(String[] args) {
FileClient fileClient = new FileClient();
fileClient.receiveFile();
}
public void receiveFile() {
byte[] buffer = new byte[1024];
int length = 0;
try {
Socket socket = new Socket("192.168.1.101", 5100);
File f = new File("d:\\b.txt");
FileInputStream fis = new FileInputStream(f);
DataInputStream dataIn = new DataInputStream(fis);
DataOutputStream dataOut = new DataOutputStream(socket
.getOutputStream());
while ((length = dataIn.read(buffer)) != -1) {
dataOut.write(buffer, 0, length);
}
dataOut.flush();
dataOut.close();
fis.close();
System.out.println("文件传送完毕!!!");
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
服务器启动!
Exception in thread "Thread-0" java.lang.NullPointerException
at MultiServer.run(FileServer.java:42)
Exception in thread "Thread-1" java.lang.NullPointerException
at MultiServer.run(FileServer.java:42)
Exception in thread "Thread-2" java.lang.NullPointerException
at MultiServer.run(FileServer.java:42)
Exception in thread "Thread-3" java.lang.NullPointerException
at MultiServer.run(FileServer.java:42)
Exception in thread "Thread-4" java.lang.NullPointerException
at MultiServer.run(FileServer.java:42)
Exception in thread "Thread-5" java.lang.NullPointerException
at MultiServer.run(FileServer.java:42)
Exception in thread "Thread-6" java.lang.NullPointerException
at MultiServer.run(FileServer.java:42)