TCP網絡編程簡單實現

創建TCP連接時,主動發起連接的叫客戶端,被動響應連接的叫服務器。
這裏我們先寫服務器端

package tcp;

import java.io.IOException;
import java.io.InputStream;
import java.net.ServerSocket;
import java.net.Socket;

public class TcpServer {
    public static void main(String[] args) throws IOException {
        /*
          創建tcp服務端
          思路:
          1.創建tcp服務器端服務,服務器端爲了讓客戶端可以連接上,必須提供端口,監聽一個端口
          2.獲取客戶端對象,通過客戶端的socket流和對i贏得客戶端進行通信
          3.獲取客戶端的socket流的讀取流
          4.讀取數據並顯示在服務端
          5.關閉資源
         */

        System.out.println("服務器端啓動。。。");
        //1
        ServerSocket ss=new ServerSocket(10003);
        //2
        Socket s=ss.accept();
        String ip=ss.getInetAddress().getHostAddress();
        System.out.println(ip+"...connected");
        //3
        InputStream in=s.getInputStream();

        //4
        byte[] buf=new byte[1024];
        int len=in.read(buf);
        String str=new String(buf,0,len);

        System.out.println(str);

        //5
        s.close();
        ss.close();
    }
}

然後是客戶端

package tcp;

import java.io.IOException;
import java.io.OutputStream;
import java.net.Socket;

public class TcpClient {

    public static void main(String[] args) throws IOException {
        /*
    *  思路:
    *  1.建立tcp客戶端服務。
    *   1.1因爲是面向連接,必須有連接纔可以進行通信
    *   1.2在創建客戶端是,就必須明確目的地址和端口
    *  2.一旦連接建立,就有了傳輸數據的通道。就可以在通道中進行數據傳輸。
    *    這個傳輸其實就是通過流實現的。就是socket io流
    *  3.獲取socket io中的寫動作,將數據寫到socket流中發給分服務端
    *  4.關閉資源
    */

        System.out.println("客戶端啓動。。。");

        //1
        Socket s = new Socket("192.168.89.232", 10003);

        //2
        OutputStream out = s.getOutputStream();

        //3
        out.write("注意,tcp客戶端來了。。".getBytes());

        //4
        s.close();
    }
}
發佈了43 篇原創文章 · 獲贊 42 · 訪問量 4萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章