[問題] socket自動斷開
先說說我程式的架構
有一個class MultiThreadedServer
它有個inner class叫 HandleClient implements Runnable
顧名思義就是讓外面的class去accept client的連結
再把它分配到inner class裡
----------------以上前言----------------
我的HandleClient長這樣
class HandleClient implements Runnable
{
private Socket skt;
private String path;
HandleClient(Socket ss){skt = ss;}
public void run()
{
try{
while(true)
{
... //recieve request to String msg
if( msg.equals("sendPic") ) { recievePic(); }
else if( msg.equals("sendPicMenu") ) { sendPicMenu(); }
else if( msg.equals("login") ) { login(); }
}
} catch(Exception e) {
System.out.println(e.toString());
}
}
private void recievePic(){...;}
private void sendPicMenu(){...;}
private void login(){...;}
}
Bug:
在最下面三個methods裡我都沒有寫到 skt.close();
login(); 沒有問題
但當我執行sendPicMenu();的時候
它做完這個method, socket會自動斷線
我有關掉的只有一個讀取檔案的 FileInputStream
還有一個傳輸的BufferedOutputStream
請問我應該要怎麼改才能讓他不斷線呢QQ
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.113.235.115
→
05/09 17:53, , 1F
05/09 17:53, 1F
→
05/09 17:56, , 2F
05/09 17:56, 2F
→
05/09 18:00, , 3F
05/09 18:00, 3F
→
05/09 18:01, , 4F
05/09 18:01, 4F
→
05/09 18:02, , 5F
05/09 18:02, 5F
→
05/09 20:30, , 6F
05/09 20:30, 6F