共计 1289 个字符,预计需要花费 4 分钟才能阅读完成。
客户端
package com.ZXF.Net;
import java.io.*;
import java.net.InetAddress;
import java.net.Socket;
public class TcpClientDemo1 {
public static void main(String[] args) {
Socket socket=null;
OutputStream os=null;
FileInputStream fis=null;
InputStream is=null;
ByteArrayOutputStream baos=null;
try {
//1. 创立一个 socket 连贯
socket=new Socket(InetAddress.getByName("127.0.0.1"),9000);
//2. 创立一个输入流
os=socket.getOutputStream();
//3. 读取文件
fis=new FileInputStream(new File("林允儿.jpg"));
//4. 写出文件
byte[] buffer=new byte[1024];
int len=-1;
while ((len=fis.read(buffer))!=-1){os.write(buffer,0,len);
}
// 告诉服务端,我已完结
socket.shutdownOutput();// 我曾经传输完了
// 确认服务器接管实现,[WebMoney 下载](https://www.gendan5.com/wallet/WebMoney.html) 能力断开连接
is=socket.getInputStream();
// 因为服务发过来的确认信息是字符数组,所以创立数组管道流
baos=new ByteArrayOutputStream();
byte[] buffer2=new byte[2014];
int len2=-1;
while ((len2=is.read(buffer2))!=-1){baos.write(buffer2,0,len2);
}
System.out.println(baos.toString());
} catch (IOException e) {e.printStackTrace();
}
finally {
// 敞开资源,先开后关
if (baos!=null){
try {baos.close();
} catch (IOException e) {e.printStackTrace();
}
}
if (is!=null){
try {is.close();
} catch (IOException e) {e.printStackTrace();
}
}
if (fis!=null){
try {fis.close();
} catch (IOException e) {e.printStackTrace();
}
}
if (os!=null){
try {fis.close();
} catch (IOException e) {e.printStackTrace();
}
}
if (socket!=null){
try {fis.close();
} catch (IOException e) {}}
}
}
}
正文完