第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定

UDP多線程

模仿TCP多線程監(jiān)聽寫了一個(gè)UDP多線程,可是服務(wù)器的那個(gè)可以正常運(yùn)行,但是客戶端那個(gè),第一次運(yùn)行無(wú)法得到服務(wù)器傳過來(lái)的語(yǔ)句,第二次運(yùn)行能得到那語(yǔ)句,可是卻自動(dòng)terminated,不懂,求解,代碼如下:

客戶端代碼:

55dab74b00013d4c05000292.jpg


線程代碼:

55dab74b0001fe1c05000284.jpg


服務(wù)器代碼:

55dab74b0001117f05000276.jpg


正在回答

1 回答

同樣的問題,已解決。原因: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.length);

????socket.receive(packet);//此方法在接受到數(shù)據(jù)之前會(huì)一直阻塞

????UDPServerThread serverThread=new UDPServerThread(socket,apcket,data);

????serverThread.start();

}

這樣在while循環(huán)到第二次時(shí),new了一個(gè)新的packet對(duì)象,主線程鎖住新對(duì)象,上一次的對(duì)象自動(dòng)解鎖,上一次循環(huán)時(shí)新建的子線程中的對(duì)packet進(jìn)行調(diào)用的方法才可以開始執(zhí)行。建議百度查一下同步synchronized

3 回復(fù) 有任何疑惑可以回復(fù)我~

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)