Re: 請教一下要如何把一各object丟到socket getoup …
※ 引述《Gitangan (周大貓)》之銘言:
: 不好意思還不是很懂2位板友的解說= =
: 我再把我的server的程式碼貼上,
: 目前程式一直卡住中..
請不要問怎麼改,大家討論一下問題點。
先不管程式細節,看 client/server 程式大體上的流程。
[Client site]
socket = new Socket(servername, port);
// 下面這個 statement 會導致 serialization stream header 送到 server site
outstream = new ObjectOutputStream(socket.getOutputStream());
// ObjectInputStream constructor 會 block 住直到 server site 送來
// serialization stream header
instream = new ObjectInputStream(socket.getInputStream());
[Server site]
ss = new ServerSocket(port);
ServerStart.socket = t.socket = ss.accept();
// 等待 client 送來 serialization stream header,沒問題可收到,不會 block 住
instream = new ObjectInputStream(t.socket.getInputStream());
// server 程式會 block 在這裡直到 client 以 writeUTF method 送過來一字串,
// 但是 client 程式在建構 ObjectInputStream 時就 block 住,沒有(也不再)送出
// 任何數據到 server site,所以 server 程式會一直停在這裡,沒有機會建構
// ObjectOutputStream,那麼 client site 無法收到 serialization stream header
// 而一直停住,於是 client/server 程式皆陷在一直等待對方送數據過來的狀態
message = instream.readUTF();
if (message.equals("/bye")) {
outstream = new ObjectOutputStream(socket.getOutputStream());
outstream.writeUTF(message);
...
}
else {
outstream = new ObjectOutputStream(socket.getOutputStream());
outstream.writeUTF(message);
}
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.173.135.215
※ 編輯: sbrhsieh 來自: 218.173.135.215 (12/25 00:07)
※ 編輯: sbrhsieh 來自: 218.173.135.215 (12/25 00:08)
→
12/25 00:11, , 1F
12/25 00:11, 1F
討論串 (同標題文章)
本文引述了以下文章的的內容:
完整討論串 (本文為第 10 之 10 篇):
java 近期熱門文章
PTT數位生活區 即時熱門文章