//1.创建socket
Socket s = new Socket("192.168.50.185", 5051);
System.out.println("已连接到服务器185端口,准备传送图片 ...");
//2.得到socket读写流
OutputStream out = s.getOutputStream();
//===============================================
// 3**.这一步很关键:不管是图片还是字符串,都需要将图片或者字符串写到流中**
//3.1构建图片的流
// FileInputStream fis = new FileInputStream(pic_path);
//3.2构建字符串的流
ByteArrayInputStream tInputStringStream = new ByteArrayInputStream(json_name_feature.getBytes());
byte[] buf = new byte[1024];
int len = 0;
//4.往输出流里面投放数据
while ((len = tInputStringStream.read(buf)) > 0)
{
//4.1 将图片流或者字符串流一点一点读出来
//4.2 将读出来的流,用socket独有的读写流写入到socket中
out.write(buf,0,len);
}
//通知服务端,数据发送完毕
s.shutdownOutput();
//===============================================
//这个流是socket特有的,作用:读出来socket里面的流;上面的作用是:向socket里面写流
InputStream in = s.getInputStream();
byte[] bufIn = new byte[1024];
System.out.println("222");
StringBuilder SBuf = new StringBuilder();
// 将socket里面的流一点一点读出来
while ((len = in.read(bufIn)) != -1)
{
System.out.println("aaaaa");
String sss = new String(bufIn,0,len);
SBuf.append(sss);
}
String state = SBuf.toString();
//关闭流
s.close();
tInputStringStream.close();
out.flush();
out.close();
socket客户端原理详解(传文字或图片)
最新推荐文章于 2022-07-09 12:17:03 发布