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方法提出來,并且重載調用