[问题] 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