package com.aaa;
import java.io.BufferedReader;
import java.io.File;
import java.io.FileReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;
public class Server {
public static void main(String[] args) throws Exception {
while (true) {
ServerSocket ss = new ServerSocket(9527);
Socket s = ss.accept();
System.out.println("有人来了");
// 听筒
InputStream is = s.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(is));
// 话筒
OutputStream os = s.getOutputStream();
PrintWriter out = new PrintWriter(os, true);
// 读取文件的流
String fileName = br.readLine();// 读取客户要的文件名
// 找到文件,如果不存在就告诉客户端
File file = new File("c:/" + fileName);
if (file.exists()) {
BufferedReader readFile = new BufferedReader(new FileReader(
file));
// 读一行文件
String content = readFile.readLine();
while (content != null) {
out.println(content);// 通过话筒发出文件
content = readFile.readLine();// 反复读取所有文件,直到读完
}
} else {
out.println("对不起您请求的文件不存在");
}
}
}
}
package com.aaa;
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.PrintWriter;
import java.net.InetAddress;
import java.net.Socket;
import java.util.Scanner;
public class Client {
/**
* @param args
*/
public static void main(String[] args) throws Exception{
// TODO Auto-generated method stub
InetAddress ia = InetAddress.getByName("192.168.1.58");
Socket s = new Socket(ia,9527);
//听筒
InputStream is = s.getInputStream();
BufferedReader br = new BufferedReader(new InputStreamReader(is));
//话筒
OutputStream os = s.getOutputStream();
PrintWriter out = new PrintWriter(os,true);
//接收文件名的流
Scanner sc = new Scanner(System.in);
System.out.println("请输入您要的文件名");
String fileName = sc.nextLine();
out.println(fileName);
//因为字符流是逐行读取(serversocket),所以接收的时候也要逐行收
String content = br.readLine();
while(content != null){
System.out.println(content);
content = br.readLine();
}
sc.close();
out.close();
os.close();
br.close();
is.close();
}
}