package com.sundear.demo.tcp;
import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;
/**
* 创建服务器
* 1。指定端口 使用ServerSocket创建服务器
* 2,阻塞式等待连接 accept
* 3. 操作 输入输出流操作
* 4。 释放资源
*/
public class FileServer {
public static void main(String[] args) throws IOException {
System.out.println("---server---");
//指定端口 使用ServerSocket创建服务器
ServerSocket server = new ServerSocket(8888);
//阻塞式等待连接 accept
Socket client = server.accept();
System.out.println("一个客户端建立了连接");
//2.操作 文件拷贝
BufferedInputStream is = new BufferedInputStream(client.getInputStream());
BufferedOutputStream bf = new BufferedOutputStream(new FileOutputStream("src/main/java/com/sundear/demo/tcp/tcp.png"));
byte[] flush = new byte[1024];
int len=-1;
while((len= is.read(flush))!=-1){
bf.write(flush,0,len);
}
bf.flush();
bf.close();
client.close();
}
}
package com.sundear.demo.tcp;
import java.io.*;
import java.net.Socket;
/**
* 单向:创建客户端
* 1。建立连接 使用Socket创建客户端+服务的地址和端口
* 2. 操作 输入输出流操作
* 3。 释放资源
*/
public class FileClient {
public static void main(String[] args) throws IOException {
System.out.println("---client---");
Socket client =new Socket("localhost",8888);
//2.操作 文件上传
BufferedInputStream bf = new BufferedInputStream(new FileInputStream("src/main/java/com/sundear/demo/tcp/1.png"));
BufferedOutputStream os = new BufferedOutputStream(client.getOutputStream());
byte[] flush = new byte[1024];
int len=-1;
while((len= bf.read(flush))!=-1){
os.write(flush,0,len);
}
os.flush();
os.close();
client.close();
}
}