已采納回答 / 長安An
這是線程的使用方面的知識(shí)。run()方法里面的叫線程體,是在這個(gè)線程需要執(zhí)行的具體邏輯,而start()方法是啟動(dòng)線程。我們調(diào)用start()方法啟動(dòng)這個(gè)線程,然后系統(tǒng)會(huì)自動(dòng)調(diào)用run()方法去執(zhí)行里面的邏輯。如果我們不調(diào)用start(),而調(diào)用run(),的確可以運(yùn)行run()方法里面的邏輯,但是那是在當(dāng)前線程執(zhí)行的,沒有新的線程被建立,也就不叫多線程了。你應(yīng)該補(bǔ)充一下線程方面的基礎(chǔ)知識(shí)。
已采納回答 / qq_啊宏_0
因?yàn)槭强蛻舳诉B接服務(wù)器建立了通信的通道,使客戶端和服務(wù)器連接起來,所以已經(jīng)建立好了橋梁,就可以發(fā)送信息過來了,而不需要再次連接。
最新回答 / qq_i_18
??? //1.創(chuàng)建客戶端Socket,指定服務(wù)器地址和端口?? ??? ??? ?Socket socket = new Socket("localhost", 8888);?? ??? ??? ?//2.獲取輸出流,向服務(wù)器端發(fā)送信息?? ??? ??? ?OutputStream os = socket.getOutputStream();//字節(jié)輸出流?? ??? ??? ?PrintWriter pw = new PrintWriter(os);//將輸出流包裝為打印流?? ??? ??? ?p...
2017-02-08
最贊回答 / 向上看
這是因?yàn)橐粋€(gè)byte只能表示8位,而第一位是符號位,第一位0表示正,第一位1表示負(fù)。(例如:192換成2進(jìn)制就是 11000000,因?yàn)榈谝晃皇恰?’故為負(fù)數(shù),值=(符號位不變,其他取反加1)=64),不懂得話就網(wǎng)上查查原碼和補(bǔ)碼
2017-02-08
已采納回答 / qq_倔強(qiáng)人生_0
?String?buffer?=?br.readLine();????????????while?(buffer?!=?null)?{????????????????System.out.println("我是服務(wù)器端,客戶端向我發(fā)送信息為:?"?+?buffer);????????????}這句話有問題了,buffer在讀取玩br.readLine(),的時(shí)候就是已經(jīng)有數(shù)值了,你在循環(huán)的時(shí)候已經(jīng)進(jìn)入了while(1)z這樣的情況,他是不會(huì)跳出循環(huán)的,所以一直在重復(fù)打印