已采納回答 / T天涯灬
你的DatagramSocket socket是主線程的東西,新建的其他線程當然用不了,你把sokect放在公共區用volatile修飾讓所有線程共享就可以了,親測。代碼:????
public?class?UDPServer2?{ ????public?static?v...
2018-09-25
已采納回答 / 不改bug
try?{ ????????????????//如果不設置等待時間,服務端已經關閉了,客戶端還沒有來得及讀取這個響應,從而報錯 ????????????????System.out.println("先不要關閉"); ???????????...
2018-09-25
這個原因建議去了解一個,原碼、反碼、補碼的概念。IP地址是INT 類型的例如: 130在計算機中表示二進制位
00000000 00000000 00000000 10000010 ,當它存入到字節數組中,由于一個字節有8位,故,存入后130為 10000010
而二進制中最高位為符號位 (0代表整數,1代表負數),所以1000 0010表示的是一個負數,負數在計算機中是用的補碼表示的,要求的原碼,1000 0010 要先 -1 得:1000 0001 在求反后得其原碼,0111 1110 轉化為10進制為 -126.
00000000 00000000 00000000 10000010 ,當它存入到字節數組中,由于一個字節有8位,故,存入后130為 10000010
而二進制中最高位為符號位 (0代表整數,1代表負數),所以1000 0010表示的是一個負數,負數在計算機中是用的補碼表示的,要求的原碼,1000 0010 要先 -1 得:1000 0001 在求反后得其原碼,0111 1110 轉化為10進制為 -126.
2018-08-28
最贊回答 / HungerCheung
你看的這個章節中:server中僅僅實現了接受來自client的字符串信息的功能,所以在server運行的控制臺會顯示接收到信息。client中僅僅實現了發送字符串信息的功能,沒有接受的功能,所有在它的控制臺也就沒有信息顯示。你繼續學習后續這個課程后續的視頻,會逐步的完善server和client的功能,到時候client也會顯示相應的信息了。望采納。
2018-08-20
最贊回答 / 幕布斯3021265
找到原因來了,問題在于服務器端是用來BufferedReader的readLine函數,這個函數只用在讀到換行符的時候才會結束,不然會一直是阻塞的狀態。而我這里發送的時候沒有加上換行符就會產生阻塞的現象,而我關閉了輸出流,就等與強制結束了readLIne函數的進程,所以也能解決問題。
2018-08-18
最贊回答 / 慕瓜1454717
ip和端口 是服務器端的,也就是服務器一直在偵聽本地的指定的端口,等待客戶端的連接請求,客戶端訪問的是服務器端的地址。服務器沒有變,只是多客戶端訪問,所以IP和端口號不變
2018-08-15