package com.maomy.testThread;
import java.io.BufferedInputStream;
import java.io.BufferedReader;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
public class Server extends Thread {
static Socket socket;
public Server(Socket socket){
this.socket=socket;
}
public void run(){
while(true){
try {
//*************文件处理用
DataInputStream filein=new DataInputStream(socket.getInputStream());
DataOutputStream fileout=new DataOutputStream(socket.getOutputStream());
//消息处理
BufferedReader in = new BufferedReader(new InputStreamReader(socket
.getInputStream()));
PrintWriter out = new PrintWriter(socket.getOutputStream());
while(true){
//读取客户端传过来的信息
String str = in.readLine();
if("m".equals(str.substring(0, 1))){
out.println("服务器收到的消息:" + str.substring(2,str.length()));
//写入文件(创建一个txt文件)
FileOutputStream fos=new FileOutputStream("d:/FileName.txt");
String temp="你输入的消息为:"+str.replace("m ","");//去掉m
fos.write(temp.getBytes());
fos.close();
//进行流刷新
out.flush();
}
if(!str.equals("dir")||str.equals("")){
out.println("输入的命令无效!!!");
//进行流刷新
out.flush();
}
if(str.equals("dir")){
//返回给客户端的信息
fileout.writeUTF("canLoad");
}
//从ServerFiles里找出所有文件
File dir=new File("d:/ServerFiles");
File[] files=dir.listFiles();
fileout.writeInt(files.length);
for(int i=0;i<files.length ;i++){
//把文件返回给客户
fileout.writeUTF(files[i].getName());
}
//读取客户传过来的文件名
String fileName=filein.readUTF();
//由客户传过来的文件名,在ServerFiles里查找相应的文件名
File file=new File("d:/ServerFiles/"+fileName);//别忘了创建文件夹(ServerFiles)
//目录下的文件存在
if(file.exists()){
//返回给客户端的信息
fileout.writeUTF("startDownLoad");//可下载
fileout.writeLong(file.length());
BufferedInputStream fileIn=new BufferedInputStream(new FileInputStream(file));
int b=-1;
while((b=fileIn.read())!=-1){
fileout.write(b);//输出文件到客户端
}
}else{
fileout.writeUTF("Error");
}
if (str.equals("exit"))
break;
}
// //关闭
// socket.close();
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
/**
* @param args
* @throws IOException
*/
// public static void main(String[] args) throws IOException {
// Server sr=new Server();
//
// ServerSocket ss=new ServerSocket(9966);
// System.out.println("服务器成功启动......");
// //等待客户端请求
// while(true){
// socket=ss.accept();
// sr.start();
// }
//
// }
}
- 1
- 2
前往页