package com.itheima.demo04;
import java.io.*;
import java.net.Socket;
/**
* @author Mr.liu
* @date 2021年04月13日 16:07
*/
public class Client {
//文件上传
public static void main(String[] args) throws IOException {
System.out.println("准备与服务器建立连接.....");
Socket socket = new Socket("192.168.163.72",8080);
FileInputStream fileInputStream = new FileInputStream("E:\\传智.zip");
OutputStream outputStream = socket.getOutputStream();
byte[] bytes = new byte[1024];
int len = 0;
System.out.println("文件准备上传....");
while ((len = fileInputStream.read(bytes)) != -1){
outputStream.write(bytes,0,len);
}
socket.shutdownOutput();
BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(socket.getInputStream()));
String len1 = null;
while ((len1 = bufferedReader.readLine()) != null){
System.out.println("等待反馈:"+len1);
}
System.out.println("文件上传成功");
socket.close();
fileInputStream.close();
outputStream.close();
}
}
package com.itheima.demo03;
import java.io.*;
import java.net.Socket;
import java.util.Scanner;
/**
* @author Mr.liu
* @date 2021年04月13日 14:48
*/
public class Client {
//客户端
public static void main(String[] args) throws IOException {
//建立连接
Socket socket = new Socket("192.168.163.72", 8888);
BufferedReader bdf = new BufferedReader(new InputStreamReader(socket.getInputStream()));
try (BufferedWriter fileWriter = new BufferedWriter(new FileWriter("text.txt"))) {
//定义一个线程
new Thread(() -> {
try {
String len = null;
//读取数据,每次读取一行
while ((len = bdf.readLine()) != null) {
System.out.println("【她对你说】" + len);
fileWriter.write(socket.getInetAddress()+"说:"+len);
fileWriter.newLine();
if ("拜拜".equals(len)) {
fileWriter.close();
System.exit(0);
}
}
} catch (IOException e) {
e.printStackTrace();
}
}).start();
//定义一个文件扫描器,用来接受收据
Scanner scanner = new Scanner(System.in);
//向服务器发送数据
OutputStream out = socket.getOutputStream();
while (true) {
System.out.println("【你对她说】:");
String content = scanner.next();
out.write((content + "\r\n").getBytes());
fileWriter.write(socket.getInetAddress()+"说:"+content);
fileWriter.newLine();
//如果等于拜拜,退出
if ("拜拜".equals(content)) {
fileWriter.close();
System.exit(0);
}
}
} catch (IOException e) {
e.printStackTrace();
}
}
}
注意:要先启动服务端!