[問題] Socket Inputstream

作者: yoyojackson (JiSon)   2016-05-12 20:10:48
我的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());
}
作者: tomoyaken14 (黑輪)   2016-05-12 23:42:00
accept() 在迴圈外面
作者: yoyojackson (JiSon)   2016-05-13 00:11:00
我的accept()是在迴圈外沒錯喔
作者: k70430 (K7)   2016-05-13 00:18:00
一樓是說,你的accept要放在while(ture) 裡面while(true)裡才行
作者: yoyojackson (JiSon)   2016-05-13 00:51:00
喔喔 是那意思喔 可是這個我也試過了這樣的話Client端還要在主動重新連線一次挨不能不重連嗎 還是本來就要讀一次重連一次
作者: k70430 (K7)   2016-05-13 07:59:00
你的getInputStream也要放迴圈裡,才能連線後一直讀啊而且你的code不完整,不太好判斷你的shut和re做了什麼你要回傳訊息給你的Client,它才知道要丟新的訊息給Server不太好說,你直接找基本的socket範例研究一下吧

Links booklink

Contact Us: admin [ a t ] ucptt.com