[問題] 有關於Socket 傳送和接收byte[]的問題

看板AndroidDev作者 (肉鬆)時間13年前 (2011/08/24 22:28), 編輯推噓1(105)
留言6則, 2人參與, 最新討論串1/1
小弟最近要寫一個Server and Client的程式 ByteArrayOutputStream baos = new ByteArrayOutputStream(); bmp.compress(Bitmap.CompressFormat.JPEG, 100, baos); byte[] b = baos.toByteArray(); 其中bmp是Client端用相機照起來的圖檔 Client用 DataOutputStream output = new DataOutputStream(clientSocket.getOutputStream()); output.write(b); output.flush(); 然後Server接收端用 byte[] receive = new byte[2048]; DataInputStream input = new DataInputStream(socket.getInputStream()); while ( input.read(receive) != -1 ) { .... .... } 但是Server端似乎會停在input.read就不動了 或是有其他方法能夠傳送嗎?? 拜託大神們救救小弟吧Q_Q -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 140.113.144.132

08/25 05:48, , 1F
你的socket確定是對的嗎 TCP來講有Listen/Accept socket
08/25 05:48, 1F

08/25 05:48, , 2F
不是new一個Socket就能用的
08/25 05:48, 2F

08/25 07:59, , 3F
ServerSocket SS = new ServerSocket(你的port);
08/25 07:59, 3F

08/25 08:00, , 4F
Socket S = SS.Accept();
08/25 08:00, 4F

08/25 08:00, , 5F
Server端要這樣寫,大小寫以及拼字我沒檢查。
08/25 08:00, 5F

08/25 08:01, , 6F
還有,沒收到東西的話,程式會停在input.read()那邊沒錯
08/25 08:01, 6F
文章代碼(AID): #1ELGf_Bm (AndroidDev)
文章代碼(AID): #1ELGf_Bm (AndroidDev)