JAVA_TCP客戶端服務端
阿新 • • 發佈:2018-11-09
服務端:
package cn.itcast.tcp.demo; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.ServerSocket; import java.net.Socket; /** * 服務端接收客戶端傳送來的資料,並列印帶控制檯上 * * 建立TCP連線思路: * * 1、首先建立服務端服務,通過ServeSocket物件 * * 2、客戶端必須對外提供一個埠,否則無法連線 * * 3、服務端獲取客戶端的物件 * * 4、通過客戶端物件獲取Socket流,並把資料列印在控制檯上 * * 5、關閉流,客戶端的和服務端的。 * * */ public class ServeDemo { public static void main(String[] args) throws IOException { // 1、首先建立服務端服務,通過ServerSocket物件 ServerSocket ss=new ServerSocket(10012); // 2、服務端獲取客戶端的物件 Socket s=ss.accept();//阻塞式的方法 String ip=s.getInetAddress().getHostAddress(); // 3、通過客戶端物件獲取Socket流,並把資料列印在控制檯上 InputStream is=s.getInputStream(); byte[]buff=new byte[1024]; int len=is.read(buff); String txt=new String(buff, 0, len); // 4、列印資料 System.out.println(ip+"::::"+txt); // 5、給客戶端回覆資料,通過客戶端的socket流的outputstream流 OutputStream os=s.getOutputStream(); // 6、給客戶端寫入資料 os.write("我知道了".getBytes()); // 7、關閉資源 s.close(); ss.close(); } }
客戶端:
package cn.itcast.tcp.demo; import java.io.IOException; import java.io.InputStream; import java.io.OutputStream; import java.net.Socket; import java.net.UnknownHostException; /** * Tcp傳輸客戶端床墊過程 * * 1、建立Tcp的Socket服務,使用的是Socket物件,建議一開始就明確目的地,要連線的主機; * * 2、如果建立成功,說明資料已經連上。 * 該通道是Socket流,是底層建立好的,可以通過Socket物件獲取輸入和輸出流物件。 * 通過getoutputstream()和getinputstream()來獲取。 * * 3、將資料通過流物件傳送出去; * * 4、關閉socket流。 * * */ public class ClientDemo { public static void main(String[] args) throws UnknownHostException, IOException { // 1、建立socket服務 Socket st=new Socket("192.168.1.216",10012); // 2、獲取輸出流 OutputStream os=st.getOutputStream(); // 3、將資料寫到流上 os.write("tcp客戶端:我來了!!!".getBytes()); // 4、讀取服務端發過來的資料 InputStream is=st.getInputStream(); // 5、將資料儲存下來 byte[]buff=new byte[1024]; int len=is.read(buff); String txt=new String(buff, 0, len); // 6、將資料列印 System.out.println(txt); // 4、關閉流 st.close(); } }