java中TCP/IP通信

客戶端代碼:

import java.io.BufferedReader;  

import java.io.IOException;  

import java.io.InputStreamReader;  

import java.io.OutputStream;  

import java.net.Socket;  

import java.net.UnknownHostException;  

public class TcpClient {  

  public static void main(String[] args) {  

      // 聲明一個socket  

      Socket socket = null;  

     try {  

          String msg = null;  

          // 產生socket對象,制定服務器地址和服務器監聽的端口號  

         socket = new Socket("127.0.0.1", 8080);  

          // 從標準輸入(鍵盤)讀取內容,獲取socket的輸出流,將讀取到的內容放入輸出流中  

          BufferedReader reader = new BufferedReader(new InputStreamReader(System.in));  

         OutputStream outputStream = socket.getOutputStream();  

           while (!(msg = reader.readLine()).equalsIgnoreCase("exit")) {  

             outputStream.write(msg.getBytes());  

           }  

     } catch (UnknownHostException e) {  

          // TODO Auto-generated catch block  

          e.printStackTrace();  

     } catch (IOException e) {  

           // TODO Auto-generated catch block  

          e.printStackTrace();  

     } finally {  

         try {  

               socket.close();  

          } catch (IOException e) {  

              // TODO Auto-generated catch block  

             e.printStackTrace();  

        }  

     }  

  }  


}  

服務器端代碼:


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) {  

      // 聲明一個服務器端socket  

      ServerSocket serverSocket = null;  

     // 聲明一個socket來接受客戶端連接  

      Socket socket = null;  

       try {  

         int temp;  

         // 定義服務器端socket並指定監聽端口  

           serverSocket = new ServerSocket(8080);  

          // 調用阻塞式方法來獲取客戶端連接的socket  

          socket = serverSocket.accept();  

          // 獲取客戶端socket的輸入流  

          InputStream inputStream = socket.getInputStream();  

           // 讀取客戶端socket的輸入流的內容並輸出  

           byte[] buffer = new byte[512];  

           while ((temp = inputStream.read(buffer)) != -1) {  

              System.out.println(new String(buffer, 0, temp));  

          }  

      } catch (IOException e) {  

           // TODO Auto-generated catch block  

           e.printStackTrace();  

      } finally {  

           try {  

              socket.close();  

              serverSocket.close();  

           } catch (IOException e) {  

               // TODO Auto-generated catch block  

              e.printStackTrace();  

          }  

       }  

  }  

}  


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