1. 程式人生 > 遊戲攻略 >《艾爾登法環》物品標註大地圖分享

《艾爾登法環》物品標註大地圖分享

Tcp通訊

客戶端

步驟:

  1. 建立客戶端物件Socket,構造方法繫結伺服器的IP地址和埠號
  2. 使用Socket物件中的方法getOutputStream()獲取網路位元組輸出流OutputStream物件
  3. 使用網路位元組輸出流OutputStream中的方法write給伺服器傳送資料
  4. 使用Socket物件中的方法getInputStream()獲取網路位元組輸入流InputStream物件
  5. 使用網路位元組輸入流中的InputStream物件中的方法read,讀取伺服器回寫的資料
  6. 釋放資源Socket

舉例:

import java.net.Socket;
import java.io.*;

public class TCPClient {
    public static void main(String[] args) throws IOException{
        //1.建立客戶端物件Socket,構造方法繫結伺服器的IP地址和埠號
        Socket socket=new Socket("127.0.0.1",8888);
        //2.使用Socket物件中的方法getOutputStream()獲取網路位元組輸出流OutputStream物件
        OutputStream os=socket.getOutputStream();
        //3.使用網路位元組輸出流OutputStream中的方法write給伺服器傳送資料
        os.write("你好伺服器".getBytes());
        //4.使用Socket物件中的方法getInputStream()獲取網路位元組輸入流InputStream物件
        InputStream is=socket.getInputStream();
        //5.使用網路位元組輸入流中的InputStream物件中的方法read,讀取伺服器回寫的資料
        byte[] bytes=new byte[1024];
        int len=is.read(bytes);
        System.out.println(new String(bytes,0,len));
        //6.釋放資源Socket
        socket.close();
    }
}

伺服器

步驟:

  1. 建立伺服器ServerSocket物件和系統要指定的埠號
  2. 使用ServerSocket物件中的方法accept,獲取到請求的客戶端物件Socket
  3. 使用Socket物件中的方法getIutputStream()獲取網路位元組輸入流InputStream物件
  4. 使用網路位元組輸入流InputStream物件中的方法read,讀取客戶端傳送的資料
  5. 使用Socket物件中的方法getOutputStream()獲取網路位元組輸出流OutputStream物件
  6. 使用網路位元組輸出流OutputStream物件中的write方法,給客戶端回寫資料
  7. 釋放資源Socket和ServerSocket

舉例:

import java.net.ServerSocket;
import java.net.Socket;
import java.io.*;

public class TCPServer {
    public static void main(String[] args) throws IOException {
        //1.建立伺服器ServerSocket物件和系統要指定的埠號
        ServerSocket server=new ServerSocket(8888);
        //2.使用ServerSocket物件中的方法accept,獲取到請求的客戶端物件Socket
        Socket socket=server.accept();
        //3.使用Socket物件中的方法getIutputStream()獲取網路位元組輸入流InputStream物件
        InputStream is=socket.getInputStream();
        //4.使用網路位元組輸入流InputStream物件中的方法read,讀取客戶端傳送的資料
        byte[] bytes=new byte[1024];
        int len=is.read(bytes);
        System.out.println(new String(bytes,0,len));
        //5.使用Socket物件中的方法getOutputStream()獲取網路位元組輸出流OutputStream物件
        OutputStream os=socket.getOutputStream();
        //6.使用網路位元組輸出流OutputStream物件中的write方法,給客戶端回寫資料
        os.write("收到謝謝".getBytes());
        //7.釋放資源Socket和ServerSocket
        socket.close();
        server.close();
    }
}