亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定

Java Socket應用---通信是這樣練成的

難度初級
時長 2小時 0分
學習人數
綜合評分9.77
496人評價 查看評價
9.9 內容實用
9.8 簡潔易懂
9.6 邏輯清晰
挺好的,再接再厲
那只狗挺可愛的 (*^__^*) 嘻嘻……
socket關閉了其他流就不用close,因為其他流也隨之關閉,再關閉就會拋出異常
代碼呢 能拿來參考一下嗎?
我擦,王自健什么鬼,,,
【接上一條評論】
StringBuffer sb = new StringBuffer();
char[] cbuf = new char[is.available()];
int msgLen = 0;
while((msgLen = br.read(cbuf)) != 0) {
sb.append(cbuf);
}
String msg_client = sb.toString();
System.out.println("我是服務器,客戶端說:"+ msg_client);
章節3-2中09:40時寫的
while((info = br.readLine()) != null) {
System.out.println("我是服務器,客戶端說:"+ info);
}

這里用readLine()方法不好,如果單次客戶端從流中接收的信息是多行的,那么會被分成多行顯示。明明是一條消息,如果這樣的話就變成了多行顯示。比如客戶端發的消息是:“a\nb\nc”,那么服務端打印出來的消息就成了:
我是服務器,客戶端說:a
我是服務器,客戶端說:b
我是服務器,客戶端說:c
所以建議使用下面這種表示:
【接下一條評論】
對于還在糾結端口號為-1的朋友,我說兩點:
1、HTTP協議在當初制定時規定,其默認端口號為80,即未申明(省略)端口號的情況下,瀏覽器自動為其補充上URL中缺失的“:80”部分。關于HTTP協議的其它詳情,可查閱RFC 2616。
2、java.net.URL.getPort()規定,若URL的實例未申明(省略)端口號,則返回值為-1。
兩件事情請區分開來。
膚淺的東西講太多了,將重點
把老師提到的衍伸作業,多客戶端傳輸文件和多客戶端傳輸對象寫了下,全部搞定,很有成就感,感覺對相關知識,socket通信及IO處理又鞏固了很多,謝謝老師。最后的綜合練習可惜我數據庫部分知識還沒開始學習,等學完了再回頭來做作業
至于為什么getPort()返回-1,去看源碼就知道了,URL有一個成員變量port,初始值就是-1.如果在new實例的時候,傳入了大于等于-1的端口號,則會把這個端口號值賦給成員變量port,當然,如果傳入了小于-1的端口,則拋異常。就這么簡單,源碼就這么寫的,有什么好奇怪的!
失戀了 被甩了 就得來imooc學java ~~~~~~~~~~~~~
@以夢為馬_imooc
有沒有udp多線程的代碼。。
課程須知
本課程是 Java 開發課程的高級課程,需要對 Java 中的面向對象、IO、多線程,以及網絡相關知識有一定的基礎
老師告訴你能學到什么?
1、網絡相關的基礎知識 2、Java 中網絡相關 API 的應用 3、實現基于 TCP 的 Socket 編程 4、實現基于 UDP 的 Socket 編程

微信掃碼,參與3人拼團

微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號

友情提示:

您好,此課程屬于遷移課程,您已購買該課程,無需重復購買,感謝您對慕課網的支持!

本次提問將花費2個積分

你的積分不足,無法發表

為什么扣積分?

本次提問將花費2個積分

繼續發表請點擊 "確定"

為什么扣積分?

舉報

0/150
提交
取消