看板 java 關於我們 聯絡資訊
※ 引述《angelina877 (牛牛)》之銘言: : server端 : https://gist.github.com/javaangelina/ff67d4116cc2b0950eff8d12e202d705 : client端 : https://gist.github.com/javaangelina/1ceef4924846aa5172a61c12fe175a4e : 我想做出來的效果是client在console端, : system.in一些數字, : 丟回給server進行一些邏輯判斷. : server接收完client的資料後, : 進行邏輯判斷從server丟回client, : 但是很奇怪的是我已經建立連線了 : 在client的console輸入資訊後, : 就沒有其他顯示結果了 : 檢查了之後也覺得邏輯上沒有錯 : 請高手指點囉,先感謝大家:) ====================================================================== Server 的實作是 ====================================================================== try { System.out.println("get port 3521"); serverSocket = new ServerSocket(3521); System.out.println("waiting client...."); // 要接受他告白嗎!? clientSocket = serverSocket.accept(); writerToclient = new BufferedWriter(new OutputStreamWriter(clientSocket.getOutputStream())); readerFormclient = new BufferedReader(new InputStreamReader(clientSocket.getInputStream())); String output = null; // 好唄,先聊聊天看看!?。但要看到 \n 才理他 while ((output = readerFormclient.readLine()) != null) { int i = 7; int y = Integer.parseInt(output); // 終於說上話了,他也喜歡比 7 大的數字嗎? if (y > i) { System.out.println(output + ">" + 7); // 太棒惹,有想跟他說話的念頭了 writerToclient.write("Hello Client."); (謎:可是對方在等有 \n 的回音耶) (謎:可是對方在等有 \n 的回音耶) (謎:可是對方在等有 \n 的回音耶) writerToclient.flush(); } } } catch (IOException e) { e.printStackTrace(); } ====================================================================== Client 的實作是 ====================================================================== try { // 終於要到 line id 能送訊息惹 socket = new Socket("localhost", 3521); System.out.println("取得輸入管道"); // 死盯著 line,等你的回音 BufferedReader readerFormserver = null; readerFormserver = new BufferedReader( new InputStreamReader(socket.getInputStream())); String outputformServer = null; // 已經準備好隨時可以回訊息了! out = new PrintWriter(socket.getOutputStream(), true); Scanner scanner = new Scanner(System.in); // 為了高傲的自尊,我才不要先發第 1 個訊息捏 // 等你回我有一個 \n 的訊息才回你。 while ((outputformServer = readerFormserver.readLine()) != null) { System.out.println(outputformServer); // 收到訊息了,繼續等等 \n 的訊息 } // 是時候回你話了(謎之音:有這一天嗎!? out.println(scanner.nextLine()); System.out.println("Client傳送了"); out.close(); socket.close(); } catch (IOException e) { // TODO: handle exception e.printStackTrace(); } ====================================================================== 宅宅無法戀愛,因為都在等待,沒人踏出第一步啊。 沒有人送第 1 個訊息,雙方都在等第 1 個含 \n 的訊息 另外 Client 的思維不是凡人可想像,只顧著等,不出手的。 (塊逃啊~~~) ============================================================= 盛竹如:究竟是命運的安排還是情感的糾葛 劇情背後似乎隱藏著不為人知的秘密這又是怎麼一回兒事呢? 整個事件已經進入撲朔離迷的羅生門就讓我們繼續看下去. ============================================================= 忘了再講個小秘訣, gist 上的檔案會依附檔名做 syntax highlight 你可以把檔案改成 .java 結尾,比較好閱讀 -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.225.251.173 ※ 文章網址: https://www.ptt.cc/bbs/java/M.1466349818.A.5C8.html ※ 編輯: qrtt1 (36.225.251.173), 06/19/2016 23:24:13 ※ 編輯: qrtt1 (36.225.251.173), 06/19/2016 23:27:32 ※ 編輯: qrtt1 (36.225.251.173), 06/19/2016 23:48:12
lucky1lk: 推一個 但沒比三小 噓一個 打平 06/20 08:21
angelina877: 簡潔易懂 原來是邏輯錯了 06/20 09:18
angelina877: 謝謝 06/20 09:18
pttnews: 原PO 好人 06/20 14:00
好人(X) 好閒(O) ※ 編輯: qrtt1 (211.21.157.224), 06/20/2016 16:17:49