看板 java 關於我們 聯絡資訊
※ 引述《a39189 (Billups)》之銘言: : 請教版上各位高手 : 我在寫TCPClient的時候發現了一個很奇怪的問題 : 再送訊息的時候 明明是同樣的程式碼(我將傳送訊息寫成一個method) : 可是在不同的區域底下 一個Server端收的到訊息 : 另一個從外部呼叫的 Server卻收不到 : 這是什麼問題呢??? 有請版上各位幫我解惑了 : 我抓了這個蟲抓了快一天..... : 程式碼如下 : public Boolean connectServer( String ServerIp )throws Exception{ : System.out.println("Connecting To Server... "); : InetAddress IP = InetAddress.getByName(ServerIp); : Client = new Socket ( IP , Port ); : if(!Client.isConnected()){ : assert Client.isConnected()==false; : System.out.println("Connection failed"); : } : //會成功送到Server端的片段 : try{ : sendToServer("Message"); : } : catch(Exception e){ : } : return Client.isConnected(); : } : //Send message to TCP Server : private void sendToServer(String Message){ : //Assertion for TCP connection : if(!Client.isConnected()){ : assert Client.isConnected(); : System.out.println("Connection Failed"); : }else{ : System.out.println("Connection work"); : } : try{ : DataOutputStream outToServer = new : DataOutputStream(Client.getOutputStream()); : outToServer.writeBytes(Message+ "Client 1 \n"); : System.out.println("Sending '"+Message+"'"); : }catch(IOException e){ : } : } : . : . : . : . : . : . : public static void main(String args[]) : { : try{ : TCPClient test = new TCPClient(); : test.connectServer("localhost") : //這行Server端卻收不到 : test.inputMoves("Fail"); : }catch(Exception e){ : System.out.println(e); : } : } 這問題我之前寫Socket時也發生了...我只知道要怎麼解決,原理的話請強者說明... 我也很想知道原理... 以下是我的理解跟解決辦法 首先如果是 DataOutputStream out1 = new DataOutputStream(Client.getOutputStream()); DataOutputStream out2 = new DataOutputStream(Client.getOutputStream()); 這樣 out2.write()似乎就會寫不出去 所以我是設一個 getOut()來拿到outStream 如: User Jame = new User(TCPsocket); DataOutputStream out1 = Jame.getOut(); DataOutputStream out2 = Jame.getOut(); 這樣就可以寫了 好啦其實我看不懂你的問題,我只看到你說可以寫出去的那行,那你寫不出去的到底是 哪邊? main 那裡不就是測 你上面的地方嗎? 其實我只是想藉題發問我上面的問題而已XD -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 219.91.9.150