public class test1_server {
/*
* 网络编程(练习)
* 客户端向服务器写字符串(键盘录入),服务器(多线程)将字符串反转后写回,客户端再次读取到是反转后的字符串
*/
public static void main(String[] args) throws IOException {
ServerSocket server = new ServerSocket(54321);
System.out.println("服务器启动,绑定端口");
while (true) {
final Socket socket = server.accept();
new Thread(){
public void run() {
try {
BufferedReader br =
new BufferedReader(new InputStreamReader(socket.getInputStream()));
PrintStream ps = new PrintStream(socket.getOutputStream());
String line = br.readLine();
line = new StringBuilder(line).reverse().toString(); //字符串反转 链式编程
ps.println(line);
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}.start();
}
}
}
public class test1_client {
/*
* 网络编程(练习)
* 客户端向服务器写字符串(键盘录入),服务器(多线程)将字符串反转后写回,客户端再次读取到是反转后的字符串
*/
public static void main(String[] args) throws Exception {
Scanner sc = new Scanner(System.in);
Socket socket = new Socket("localhost", 54321);
BufferedReader br =
new BufferedReader(new InputStreamReader(socket.getInputStream()));
PrintStream ps = new PrintStream(socket.getOutputStream());
ps.println(sc.nextLine());
System.out.println(br.readLine());
socket.close();
}
}
import java.io.BufferedReader;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.PrintStream;
import java.net.ServerSocket;
import java.net.Socket;
import java.net.UnknownHostException;
import java.util.Scanner;
public class test2_server {
public static void main(String[] args) throws Exception {
ServerSocket server = new ServerSocket(12333);
System.out.println("服务器启动");
while (true) {
final Socket socket = server.accept();
new Thread(){
public void run() {
try {
InputStream is = socket.getInputStream();
BufferedReader br =
new BufferedReader(new InputStreamReader(is));
PrintStream ps = new PrintStream(socket.getOutputStream());
String fileName = br.readLine(); // 读取文件名
File dir = new File("update");
dir.mkdir(); // 创建文件夹
File file = new File(dir, fileName); // 父及目录 filename
if (file.exists()) {
ps.println("存在");
socket.close();
return;
} else {
ps.println("不存在");
}
FileOutputStream fos = new FileOutputStream(file);
byte[] arr =new byte[8192];
int len;
while ((len = is.read(arr))!= -1) {
fos.write(arr, 0, len);
}
fos.close();
socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}.start();
}
}
}
public class test2_client {
public static void main(String[] args) throws Exception {
File file = getFile();
Socket socket = new Socket("localhost",12333);
BufferedReader br =
new BufferedReader(new InputStreamReader(socket.getInputStream()));
PrintStream ps = new PrintStream(socket.getOutputStream());
ps.println(file.getName()); // 将文件名发送给服务器
String result = br.readLine();
if ("存在".equals(result)) {
System.out.println("您上传的文件已存在!请不要重复上传");
socket.close();
return;
} else {
FileInputStream fis = new FileInputStream(file);
byte[] arr = new byte[8192];
int len;
while ((len =fis.read(arr)) != -1) {
ps.write(arr,0,len);
}
fis.close();
socket.close();
}
}
private static File getFile() {
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个文件路径:");
while (true) {
String line = sc.nextLine();
File file = new File(line);
if (file.exists()) {
if (file.isDirectory()) {
System.out.println("你输入的是文件夹,请重新输入");
} else {
return file;
}
}else {
System.out.println("你输入的文件路径不存在,请重新输入");
}
}
}
}