package com.javase.net;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.io.OutputStreamWriter;
import java.net.ServerSocket;
import java.net.Socket;
import org.junit.Test;
/**
* net服务器客户端的交互demo
* 运行的时候需要先运行服务器...
* @author Bo
*
*/
public class Demo {
/**
* 1.服务器端,读取客户端socket发送来的数据
* is = socket.getInputStream();
* 2.写
* fos.write(buf,0,realcount);
*/
@Test
public void server() {
ServerSocket server = null;
Socket socket1 = null;
InputStream is = null;
FileOutputStream fos = null;
// BufferedWriter bwWriter = null;
try {
server = new ServerSocket(8886);
while (true) {
socket1 = server.accept();
is = socket1.getInputStream();
fos = new FileOutputStream("girl2.jpg");
// bwWriter = new BufferedWriter(new OutputStreamWriter(socket1.getOutputStream()));
byte[] buf = new byte[1024];
int realcount = is.read(buf);
while (realcount != -1) {
fos.write(buf, 0, realcount);
realcount = is.read(buf);
}
// bwWriter.write("发送成功!");
// bwWriter.newLine();
// bwWriter.flush();
}
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
fos.close();
} catch (IOException e) {
e.printStackTrace();
}
try {
is.close();
} catch (IOException e) {
e.printStackTrace();
}
try {
socket1.close();
} catch (IOException e) {
e.printStackTrace();
}
try {
server.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
/**
*1.客户端本地读取girl.jpg文件,
*fis = new FileInputStream("girl.jpg");
*fis.read(buf);
*
*2.socket上传
* socket.getOutputStream();
*
*
*/
@Test
public void client() {
Socket socket2 = null;
FileInputStream fis = null;
OutputStream os = null;
// BufferedReader bread = null;
try {
socket2 = new Socket("localhost", 8886);
fis = new FileInputStream("girl.jpg");
os = socket2.getOutputStream();
// bread = new BufferedReader(new InputStreamReader(socket2.getInputStream()));
byte[] buf = new byte[1024];
int realcount = fis.read(buf);
while(realcount != -1) {
os.write(buf, 0, realcount);
realcount = fis.read(buf);
}
socket2.shutdownOutput();
// String readLine = bread.readLine();
// System.out.println(readLine);
} catch (Exception e) {
e.printStackTrace();
} finally {
try {
os.close();
} catch (IOException e) {
e.printStackTrace();
}
try {
fis.close();
} catch (IOException e) {
e.printStackTrace();
}
try {
socket2.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
Socket复制文件编程Demo
最新推荐文章于 2018-09-01 12:50:51 发布