Re: [問題] Socket Inputstream
關鍵是你必須要開新執行緒去處理socket讀寫的動作
概念上是,有一條執行緒給ServerSocket專門做接受連線的動作
另外的執行緒專門對socket進行讀寫
寫出來的code應該會長的像這樣
class 讀寫socket的物件 imp...忘了怎麼拼 Runnable{
Socket socket;
讀寫socket的物件(Socket socket){this.socket=socket;}
public void run(){
//TODO 對socket讀寫的動作copy到這裡
}
}
while(true){
serverSocket = new ServerSocket(1234);
socket = serverSocket.accept();
new Thread(new 讀寫socket的物件(socket)).start();
}
※ 引述《yoyojackson (JiSon)》之銘言:
: 我的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), 來自: 125.227.87.115
※ 文章網址: https://www.ptt.cc/bbs/java/M.1463109349.A.E9F.html
推
05/14 02:00, , 1F
05/14 02:00, 1F
→
05/14 16:54, , 2F
05/14 16:54, 2F
推
05/15 23:21, , 3F
05/15 23:21, 3F
→
05/15 23:22, , 4F
05/15 23:22, 4F
推
06/20 22:58, , 5F
06/20 22:58, 5F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 2 之 2 篇):
java 近期熱門文章
PTT數位生活區 即時熱門文章