簡單的java編寫客戶端服務器通訊注意事項

client? 純粹的客戶端 具有 接受和發送兩種功能

注意點:1 因為兩種功能之間互相不干擾,因此其中一個必須放在獨立的線程里。

2 因為接受以及發送都是一直不間斷的 所以兩者都必須放在死循環里

3 線程的start 不能放在另一個功能循環里,并且必須放在另一個循環之前(因為大家都是死循環,寫在后面運行不到)

4 盡量不要多次實例化流,能提出來就提出來

server和customer? server是單純的服務器 只需要具備接受客戶端的功能 但是通過new對象跳轉customer,本質上server和customer在一個主線程里。

通過customer來實現數據的轉發

1 customer轉發功能實質是 先接收A客戶端發來的信息,然后把A信息中的ip單獨取出來,用for遍歷clients來查找匹配ip所對應的B客戶端

再把A信息中的信息內容content發送給B

2 因為接受的服務器不止一個,因此customer中對數據的轉發功能必須單獨放進一個線程,否則會發生只能進一個客戶端的情況。

3 接收轉發的線程也需要把代碼寫在死循環里

release 將server socket bw br 四種東西的close方法提出來,并且重載調用

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • Spring Cloud為開發人員提供了快速構建分布式系統中一些常見模式的工具(例如配置管理,服務發現,斷路器,智...
    卡卡羅2017閱讀 134,869評論 18 139
  • Android 自定義View的各種姿勢1 Activity的顯示之ViewRootImpl詳解 Activity...
    passiontim閱讀 173,076評論 25 708
  • 姓名:樓靈芝 單位:杭州熙林服飾 【日精進打卡第76天】 【知~學習】 《六項精進》背誦3遍,共408遍; 《大學...
    心鏡_8ef4閱讀 127評論 0 0
  • 毛宗崗【讀三國志法】 而絕倫超群者莫如云長。 名將如云, 歷稽載籍, 關羽 民間無人不曉。字云長,后人尊稱其為“關...
    玉天下閱讀 332評論 0 0
  • 我長這么大有好多沒有想明白的問題,這些問題一般我也不敢跟人交流,因為沒什么結果還總被人問是不是有病。就比如說,我問...
    西嶺xl閱讀 227評論 0 0