最贊回答 / 歐簡(jiǎn)墨
同樣的問(wèn)題,已解決。原因:socket.receive(packet)會(huì)鎖死對(duì)象packet(你看一下receive方法就知道),主線程鎖死packet對(duì)象后,在start()的子線程中不能調(diào)用 ?packet.屬性,packet.方法()。解決辦法:while(true){?????byte[] data=new byte[1024];//創(chuàng)建字節(jié)數(shù)組,指定接受的數(shù)據(jù)包的大小 ????DatagramPacket packet=new DatagramPacket(data, data.lengt...
2015-08-24
已采納回答 / needself
你想多了。只要你明白不管前面的還是后面的內(nèi)容只要是java語(yǔ)言介紹的都是各種各樣的面向?qū)ο蟮念惥€程類,輸入輸出類因?yàn)槟承傩约肮δ芏儸F(xiàn)的封裝代碼而已就是一些java提供給你的類別糾結(jié),會(huì)用就好
2015-08-23
已采納回答 / Creacc
因?yàn)閎yte是有符號(hào)的 所以值域不是0~255而是-128~127,所以比127大的數(shù)字會(huì)變成負(fù)值,你不用byte存就可以了
2015-08-19
最新回答 / 古_(tái)_月
其實(shí)你在使用的是eclipse的話,它會(huì)自動(dòng)提示異常的,你可以直接把異常向外拋,再到最后統(tǒng)一處理
最新回答 / 葉孤城_007
socket =new Socket("localhost", 8800); ois=new ObjectInputStream(new BufferedInputStream(socket.getInputStream()));socket和ois是不是需要先指定應(yīng)用類型啊?
2015-08-03
已采納回答 / changing一銘驚人
?DatagramPacket?p?=?new?DatagramPacket(buf,?buf.length);這個(gè)要放在while循環(huán)里面,因?yàn)槊恳淮蔚膔eceive()都要指定一個(gè)特有的DatagramPacket? p來(lái)接收每一個(gè)客戶端發(fā)過(guò)來(lái)的請(qǐng)求,如果你放在外面的話,就每一次都要等上一次的數(shù)據(jù)輸出后才能重新接收,這個(gè)就沒(méi)有為每一個(gè)客戶端各分配一個(gè)用來(lái)響應(yīng)的reply了,不知道能不能幫到你!!