一、TCP通信概述
TCP通信能實(shí)現(xiàn)兩臺(tái)計(jì)算機(jī)之間的數(shù)據(jù)交互,通信的兩端,要嚴(yán)格區(qū)分客戶端與服務(wù)端。(客戶端和服務(wù)端其實(shí)都是兩臺(tái)計(jì)算機(jī),客戶端是配置比較低的計(jì)算機(jī),服務(wù)端是配置比較高的計(jì)算機(jī))。
兩端通信時(shí)步驟:
?1.服務(wù)端程序,需要事先啟動(dòng),等待客戶端的連接。
?2.客戶端主動(dòng)連接服務(wù)端,連接成功才能通信。服務(wù)端不可以主動(dòng)連接客戶端。
在Java中,提供了兩個(gè)類用于事先TCP通信程序:第一個(gè),客戶端java.net.Socket類表示。創(chuàng)建socket對(duì)象,向服務(wù)端發(fā)出連接請(qǐng)求,服務(wù)端響應(yīng)請(qǐng)求,兩者建立連接開(kāi)始通信。第二個(gè),服務(wù)端,java.net.SeverSocket對(duì)象,相當(dāng)于開(kāi)啟一個(gè)服務(wù),并等待客戶端連接。

服務(wù)端必須明確兩件事情:第一個(gè)事情,多個(gè)客戶端同時(shí)進(jìn)行交互,服務(wù)器必須明確和那個(gè)客戶端進(jìn)行交互。在服務(wù)器端有一個(gè)方法叫accept 可以獲取到請(qǐng)求的客戶端Socket對(duì)象。第二個(gè)事情: 多個(gè)客戶端同時(shí)和服務(wù)器進(jìn)行交互,就需要使用多個(gè)IO流對(duì)象。 其實(shí)服務(wù)器沒(méi)有IO流的,服務(wù)器可以獲取到請(qǐng)求的客戶端對(duì)象Socket使用每個(gè)客戶端Socket中提供的IO流和客戶端進(jìn)行交互。
二、TCP通信的客戶端代碼實(shí)現(xiàn)

三、TCP通信端服務(wù)器代碼實(shí)現(xiàn)


