//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客戶端原理詳解(傳文字或圖片)
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.