TCP客戶端和服務端的互通信息

/*
學習筆記
TCP客戶端和服務端的互通信息
客戶端步驟:
需求:客戶端給服務端發送數據,服務端收到後給客戶端反饋信息
步驟:
1.導入包 java.IO java.net 包
2.創建Socket 服務。指定要連接主機和端口
3.獲取socket流中的輸出流。將數據寫到該流中,通過網絡發送給服務端。
4.獲取socket流中的輸入流,將服務端反饋的數據獲取到並打印。
5.獲取ServerSocket服務端發過來的數據。
6.創建一個緩衝區來存儲數據。
7.定義一個整型 來接收緩衝區
8.將數據打印出去。
服務端步驟:
1.導入包 java.IO java.net 包
2.創建ServerSocket服務端對象來監聽一個端口。
3.創建 socket的然後通過accept方法獲取連接過來的客戶端對象 。
4.通過這兩個方法getInetAddress().getHostAddress() 來獲取IP地址 定義字符串類型來接收IP地址。
5.將獲取到的IP地址打印出去。
6.獲取客戶端發送過來的數據 那麼使用客戶端對象的讀取流來讀取數據。
7.創建一個字節數組作爲緩衝區來存儲數據 因爲知道數據不是很大所以定義[1024]就可以用了。
8.獲取客戶端發送過來的數據 那麼使用客戶端對象的讀取流的方法:getInputStream()來讀取數據。
9.將數據寫入出去,定義一個整類類型來接收。
10.然後將數據打印出去。
11.負責給客戶端反饋信息的,所以必須用的客戶端的輸出流,通過這個方法來獲取getOutputStream();
12.然後給客戶端回饋信息,通過這個write();的這個方法將數據發送出去,將數據信息變成字符串形式發出去!
13.關閉資源(可選擇操作)
時間:2018-8-17
作者:無痕公子
*/
package tCP;
import java.io.*;
import java.net.*;

//客戶端
public class Client
{

public static void main(String[] args) throws Exception
{
    Socket s = new Socket("IP地址",10012);

    OutputStream out =  s.getOutputStream();

    out.write("給服務端 發送的信息=您好!".getBytes());

    InputStream in = s.getInputStream();

    byte[] buf = new byte[1024];

    int len =in.read(buf);

    System.out.println(new String(buf,0,len));

    s.close();

}

}
class Serverside
{

public static void main(String[] args) throws Exception
{

    ServerSocket ss = new ServerSocket(10012);

    Socket s = ss.accept();

    String iP =s.getInetAddress().getHostAddress();

    System.out.println("IP="+iP);

    InputStream in = s.getInputStream();

    byte[] buf = new byte[1024];

    int len =in.read(buf);

    System.out.println(new String(buf,0,len));


    OutputStream out = s.getOutputStream();//用的客戶端的輸出流

    Thread.sleep(10000);//10秒中後在發送

    out.write("給客戶端回饋的信息=收到!您好".getBytes());

    ss.close();

}

}
結果圖:
這裏寫圖片描述
這裏寫圖片描述
/*
總結:
通過以上的小例子給服務端 和客戶端 建立網絡通信.客戶端給服務端發送信息。服務端給客戶端回饋信息
發現了客戶端和服務端的輸入流和輸出流都是反着來的!

*/

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章