看板 java 關於我們 聯絡資訊
我的Server Socket連上線並取得Inputstream後 第一次read()讀取時有等待輸入流的資料 也有成功讀取到client送來的資料 但是第二次read卻沒等待 直接記續往下執行 無法收到資料 怎麼試都不行 code如下 try { serverSocket = new ServerSocket(1234); socket = serverSocket.accept(); System.out.println("Connceted"); is = socket.getInputStream(); while(true) { byte[] data = new byte[4096]; Integer i = is.read(data,0,4096); if(i>=0) { command = new String(data,0,i); if(command.equals("Shutdown"))shut(); if(command.equals("Restart"))re(); }else {} } //////////////////////////////////////////////////////// } catch(Exception ex) { System.out.println(ex.toString()); } -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 218.173.148.66 ※ 文章網址: https://www.ptt.cc/bbs/java/M.1463055051.A.121.html
tomoyaken14: accept() 在迴圈外面 05/12 23:42
yoyojackson: 我的accept()是在迴圈外沒錯喔 05/13 00:11
k70430: 一樓是說,你的accept要放在while(ture) 裡面 05/13 00:18
k70430: while(true)裡才行 05/13 00:18
yoyojackson: 喔喔 是那意思喔 可是這個我也試過了 05/13 00:51
yoyojackson: 這樣的話Client端還要在主動重新連線一次挨 05/13 00:51
yoyojackson: 不能不重連嗎 還是本來就要讀一次重連一次 05/13 00:52
k70430: 你的getInputStream也要放迴圈裡,才能連線後一直讀啊 05/13 07:59
k70430: 而且你的code不完整,不太好判斷你的shut和re做了什麼 05/13 07:59
k70430: 你要回傳訊息給你的Client,它才知道要丟新的訊息給Server 05/13 08:01
k70430: 不太好說,你直接找基本的socket範例研究一下吧 05/13 08:05