网络通信2

/* 1.从客户端发送文件(xx.jpg)给服务器端,服务器端保存在本地
* 并返回“success”给客户端
*
* */

package cn.wang;

import static org.junit.Assert.*;

import java.io.BufferedOutputStream;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.InetAddress;
import java.net.ServerSocket;
import java.net.Socket;

import org.junit.Test;

/* 1.从客户端发送文件(xx.jpg)给服务器端,服务器端保存在本地
* 并返回“success”给客户端
*
* */
public class TestIp1 {

@Test
//客户端 `
public void client() throws Exception {
Socket s=new Socket(InetAddress.getByName("127.0.0.1"),7782);
//2.本地获取文件,发送给服务器
OutputStream os=s.getOutputStream();
FileInputStream fis=new FileInputStream(new File("1.jpg"));
byte[] b=new byte[1024];
int len;
while((len=fis.read(b))!=-1){
os.write(b,0,len);
}

//告诉服务器发送消息完毕
s.shutdownOutput();
//接受服务器消息
InputStream tt=s.getInputStream();
byte[] bb=new byte[1024];
int length;
while((length=tt.read(bb))!=-1){
String str=new String(bb,0,length);
System.out.println(str);

}
tt.close();
fis.close();
os.close();
s.close();




}

@Test
public void server() throws Exception{
//建立一个ServerSocket对象
ServerSocket sst=new ServerSocket(7782);
//获取accept的对象
Socket soc=sst.accept();
//将客户端发来的信息保存到本地
InputStream is=soc.getInputStream();
BufferedOutputStream bos=new BufferedOutputStream(new FileOutputStream(new File("2.jpg")));

byte[] b=new byte[1024];
int len;
while((len=is.read(b))!=-1){
bos.write(b,0,len);
}
System.out.println("收到来自于"+soc.getInetAddress().getHostAddress()+"的文件");
//发送success返还给客户端
OutputStream os=soc.getOutputStream();
os.write("success".getBytes());
bos.close();
is.close();
soc.close();
sst.close();





}


}

猜你喜欢

转载自www.cnblogs.com/liuchunyong/p/10403230.html