已采納回答 / SoyaDokio
解決辦法:在Server類的第33、34行像講師一樣插入這句代碼:s.shutdownInput();在Server類的原第38、39行像講師一樣插入這句代碼:s.shutdownOutput();在Client類的第24、25行像講師一樣插入這句代碼:socket.shutdownOutput();在Client類的原第31、32行像講師一樣插入這句代碼:socket.shutdownInput();p.s. 建議把Server類的第30行代碼放到28或29行之前。
2016-07-01
最新回答 / 心中的憤怒就像龍咆哮
感覺(jué)你的好復(fù)雜,只是我的http://idcbgp.cn/article/11793還有你這部分我看不太懂,請(qǐng)將以下,/#是干什么用的OutputStream?os=socket.getOutputStream();????????PrintWriter?pw=new?PrintWriter(os);????????pw.write("111/#"+filename+"/#"+filesize);????????pw.flush();??????????socket.shutdownOutput(...
2016-06-29
已采納回答 / fly123123
Ctrl+d
已采納回答 / 心and心
讀取數(shù)據(jù)有很多種方法,各有各的特點(diǎn)比如說(shuō)字節(jié)流中,InputStream是最基本的,F(xiàn)ileInputStream用來(lái)讀取文件,DataInputStream適用于讀取各種類型的數(shù)據(jù),BufferedInputStream加緩沖可以提高IO性能字符流中也有相應(yīng)的類,InputStreamReader,FileReader,BufferedReader其中BufferedReader有一個(gè)方法readLine(),可以一行一行讀取,這個(gè)方法其他的都沒(méi)有,使用起來(lái)比較方便再看它的構(gòu)造方法,需要傳入Reader...
2016-06-28
已采納回答 / SoyaDokio
方法有三,下面依次道來(lái)。主菜單操作:選中目標(biāo)代碼 - & Bl Source?- &g Surround With?- &代碼 Try/catch Block<...圖片...>右鍵快捷菜單操作:選中目標(biāo)代碼 - &代碼 單擊右鍵 - &ift Surround With?- & Bl Try/catch B...
2016-06-27
最新回答 / Airly
這個(gè)類繼承了線程的方法由?extends Thread?這句代碼體現(xiàn)。他沒(méi)有調(diào)用Thread 這個(gè)父類的run方法,而是重寫(xiě)了這個(gè)方法....而serverThread.start();是啟動(dòng)這個(gè)線程,這句話你就想象成方法的調(diào)用。
2016-06-21
最新回答 / SoyaDokio
檢查完代碼才在最后發(fā)現(xiàn)有報(bào)錯(cuò)信息..首先,代碼看了一遍,應(yīng)該是沒(méi)有錯(cuò)誤。然后是報(bào)錯(cuò)信息,我分析有兩種可能:沒(méi)有先啟動(dòng)服務(wù)端多次啟動(dòng)/停止過(guò)于頻繁,JVM沒(méi)來(lái)得及解除端口占用再說(shuō)對(duì)應(yīng)的解決方法先啟動(dòng)服務(wù)端再啟動(dòng)客戶端有三種方案①關(guān)閉連接時(shí)線關(guān)閉服務(wù)端②每次啟動(dòng)更換端口③多次啟動(dòng)/停止之間留下一定空閑
2016-06-21
已采納回答 / 慕粉1466417893
1. 為什么要用PrinterWriter?因?yàn)槲覀儗?xiě)程序的時(shí)候,往Socket里寫(xiě)數(shù)據(jù),寫(xiě)的都是文本,都是字符,所以PrinterWriter用于程序員寫(xiě)入數(shù)據(jù)。因?yàn)镻rinterWriter是包裝的OutputStream,底層實(shí)現(xiàn)數(shù)據(jù)傳輸?shù)臅r(shí)候,會(huì)把我們寫(xiě)入的字符轉(zhuǎn)換成二進(jìn)制數(shù)據(jù),就是字節(jié)流,所以傳輸?shù)臅r(shí)候都是字節(jié)流傳輸。2. 為什么要用InputStream接收?上面講到了,底層傳輸?shù)臅r(shí)候,都是字節(jié)流,所以要用InputStream讀取,還要用BufferedReader轉(zhuǎn)換成字符流,也是為了方便...
2016-06-21
最新回答 / Halona_zx
在while里面添加一句:c = br.readLine();while (c != null) {// 循環(huán)讀取服務(wù)器發(fā)送的信息System.out.println("后面是從服務(wù)器發(fā)過(guò)來(lái)的消息" + c);c = br.readLine();}
2016-06-19
最新回答 / SoyaDokio
有的,你看看這幾個(gè)類就知道了:java.io.FileInputStream;java.io.FilterInputStream;java.io.DataInputStream;java.io.ObjectInputStream;java.io.ByteArrayInputStream;對(duì)應(yīng)的output流就不寫(xiě)了。
2016-06-14