亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

為什么我寫的javaSocket通信 服務端接收不到?

為什么我寫的javaSocket通信 服務端接收不到?

qq_風云_13 2016-05-05 14:46:23
為什么我寫的javaSocket通信,客戶端連接服務端了,然后客戶端發送消息給服務端,服務端接收,這個時候服務端接收的文件獲取不到,只有等到客戶端關閉的時候,服務端才能接到。這是代碼 package?server; import?java.io.DataInputStream; import?java.io.DataOutputStream; import?java.io.IOException; import?java.io.InputStream; import?java.io.OutputStream; import?java.net.InetAddress; import?java.net.ServerSocket; import?java.net.Socket; public?class?Server?{ public?static?void?main(String[]?args){ //1.創建一個服務器端socket即serversocket指定綁定的端口并監聽此端口 ServerSocket?serverSocket=null; String?info=null; InputStream?is=null; OutputStream?os=null; try?{ serverSocket?=?new?ServerSocket(8888); //2.調用accept()方法開始監聽,等待客戶端的連接 //讓客戶端一直訪問 Socket?socket?=null; while(true){ socket?=?serverSocket.accept(); InetAddress?ss?=?socket.getInetAddress(); System.out.println(ss.getHostAddress()); //3.獲取輸入流,并讀取客戶端信息 is=socket.getInputStream();//字節輸入流 os=socket.getOutputStream(); DataOutputStream?dos=new?DataOutputStream(os); DataInputStream?dis=new?DataInputStream(is); // InputStreamReader?isr=new?InputStreamReader(is);//將字節流轉化為字符輸入流 // BufferedReader?br=new?BufferedReader(isr);//為輸入流添加緩沖 String?s=null; s=dis.readUTF(); while((s=dis.readUTF())!=null){ System.out.println("我是服務器,客戶端說"+s); System.out.println("IP"+socket.getInetAddress()); System.out.println("port"+socket.getPort()); } if(socket.isClosed()){ System.out.println("關閉"); }else{ System.out.println("沒關閉"); } //4.獲取輸出流,響應客戶端的請求 dos.writeUTF("hello"); dis.close(); socket.close(); } }?catch?(IOException?e)?{ System.out.println("客戶端異常斷開"); } } }小弟跪求大家幫幫忙了!
查看完整描述

2 回答

?
后臺學前端

TA貢獻30條經驗 獲得超12個贊

肯定要flush(回去仨)

查看完整回答
反對 回復 2016-05-06
?
好幫手慕珊

TA貢獻39條經驗 獲得超17個贊

有可能沒清空緩沖區,在

dos.writeUTF("hello");

這條語句后面調用dos.flush();方法試試

查看完整回答
反對 回復 2016-05-05
  • qq_風云_13
    qq_風云_13
    這樣不行哦 我可能少打了這個代碼 改了好多次 謝謝你的回答哦
  • 好幫手慕珊
    好幫手慕珊
    你的客戶端和服務器端是寫到一起了嗎,也就是說,你一共就這一個程序嗎?這里沒有看到客戶端連接服務器端的代碼呀Socket socket=new Socket("localhost",8888); 建議你看一下這個課http://www.xianlaiwan.cn/learn/161 ,第三章是關于客戶端與服務器端通信的
  • qq_風云_13
    qq_風云_13
    表示搞不懂 這明明就是服務端的問題了 ,如果我不用java客戶端通信呢 我用c通信呢 亦或者我用易語言通信呢 客戶端代碼package client; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.io.PrintWriter; import java.net.Socket; import java.net.UnknownHostException; public class cc { public static void main(String[] args) { Socket socket=null; InputStream in=null; OutputStream out=null; try { socket=new Socket("localhost",8888); in=socket.getInputStream();//字節輸入流 out=socket.getOutputStream(); DataOutputStream dos=new DataOutputStream(out); DataInputStream dis=new DataInputStream(in); dos.writeUTF("王"); String s=null; while((s=dis.readUTF())!=null){ System.out.println("我是客戶端,服務器說"+s); System.out.println("IP"+socket.getInetAddress()); System.out.println("port"+socket.getPort()); } // dos.close(); dis.close(); System.out.println("連接關閉"); socket.close(); } catch (UnknownHostException e) { System.out.println("不知道的主機名"); e.printStackTrace(); } catch (IOException e) { System.out.println("io流錯誤或服務器已經關閉"); } } }
點擊展開后面2
  • 2 回答
  • 0 關注
  • 2664 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號