java 基於tcp客戶端服務端發送接收數據


客戶端:

package demo03;

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



/*
 * 實現TCP客戶端,接收到服務器
 * 和服務器實現數據交換
 * 實現TCP客戶端程序的類 java.net.Socket
 * 
 * 構造方法:
 *         Socket(String host,int port) 傳服務器IP和端口號
 *         注意:構造方法只要運行,就會和服務器進行連接,連接失敗,拋出異常
 * 
 *         OutputStream getOutputStream() 返回套接字的輸出流
 *             作用:將數據輸出,輸出到服務器
 * 
 *         InputStream getInputStream() 返回套接字的輸入流
 *             作用:從服務端讀取數據
 * 
 *         客戶端服務器數據交換,必須使用套接字對象Socket中的獲取的IO流,自己new流,不行
 */
public class TCPClient {
    public static void main(String[] args) throws IOException{
        //創建Socket對象,連接服務器
        Socket socket=new Socket("127.0.0.1",8888);
        //通過客戶端的套接字對象Socket方法,獲取字節輸出流,將數據寫向服務器
        OutputStream out=socket.getOutputStream();
        out.write("服務器你好!".getBytes());
        
        //讀取服務器發回的數據,使用socket套接字對象中的字節輸入流
        InputStream in=socket.getInputStream();
        byte[] data=new byte[1024];
        int len=in.read(data);
        System.out.println(new String(data,0,len));
        
        socket.close();
    }
}

 

服務端:

package demo03;

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

/*
 * 實現TCP服務器程序
 * 表示服務器程序的類 java.net.ServerSocket
 * 構造方法:
 *         ServerSocket(int port) 傳遞端口號
 * 
 * 很重要的事情:必須要獲得客戶端的套接字對象Socket
 *     Socket accept()
 */
public class TCPServer {
    public static void main(String[] args)throws IOException {
        ServerSocket server=new ServerSocket(8888);
        //調用服務器套接字對象中的方法accept()獲取客戶端套接字對象
        Socket socket=server.accept();
        //通過客戶端套接字對象,socket獲取字節輸入流,讀取的是客戶端發送來的數據
        InputStream in=socket.getInputStream();
        byte[] data=new byte[1024];
        int len=in.read(data);
        
        System.out.println(new String(data,0,len));
        
        //服務器向客戶端回數據,字節輸出流,通過客戶端套接字對象獲取字節輸出流
        OutputStream out=socket.getOutputStream();
        out.write("收到,謝謝".getBytes());
        
        socket.close();
        server.close();
        
    }
}

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM