1. 程式人生 > >java的TCP和UDP編程

java的TCP和UDP編程

while tin 控制臺 input service java col throw etl

TCP

客戶端:

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;

public class MyClient {

    public static void main(String[] args) throws Exception{
        
        Socket socket = null;
        BufferedReader in = null;
        PrintWriter out 
= null; BufferedReader input = null; // 請求指定ip和端口號的服務器 socket = new Socket("127.0.0.1",3333); while(true){ in = new BufferedReader(new InputStreamReader(socket.getInputStream())); out = new PrintWriter(socket.getOutputStream(), true
); // 接收控制臺的輸入 input = new BufferedReader(new InputStreamReader(System.in)); // out.println("this is client info!"); String info = input.readLine(); out.println(info); String str = in.readLine(); System.out.println(
"客戶端顯示--》服務器的信息:" + str); } //in.close(); //out.close(); } }

服務端:

import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.ServerSocket;
import java.net.Socket;

public class MyServices {

    public static void main(String[] args) throws Exception{
        ServerSocket ss = null;
        Socket socket = null;
        BufferedReader in = null;
        PrintWriter out = null;
        BufferedReader input = null;
        
        // 監聽3333端口
        ss = new ServerSocket(3333);
        // 等待接收客戶端的請求
        socket = ss.accept();
        while(true){
            // 獲取連接對象的輸入流
            in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
            // 獲取客戶端的輸入信息
            String str = in.readLine();
            
            input = new BufferedReader(new InputStreamReader(System.in));
            
            System.out.println("服務器顯示-->客戶端輸入數據:" + str);
            
            out = new PrintWriter(socket.getOutputStream(),true);
            // 將數據輸出到客戶端
            // out.println("hehe");
            String info = input.readLine();
            
            out.println(info);
        }
//        in.close();
//        out.flush();
//        out.close();
    }

}

UDP

客戶端:

import java.net.DatagramPacket;
import java.net.DatagramSocket;

public class UDPClient {

    public static void main(String[] args) throws Exception {
        
        DatagramSocket ds = null;
        DatagramPacket dp = null;
        byte[] buf = new byte[1024];
        
        ds = new DatagramSocket(3333);
        dp = new DatagramPacket(buf, 1024);
        
        // 接收數據,放入數據報
        ds.receive(dp);
        // 從數據報中取出數據
        String info = new String(dp.getData(),0, dp.getLength());
        System.out.println("接收到的信息是:" + info);
    }

}

服務端:

import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;

public class UDPServer {

    public static void main(String[] args) throws Exception {
        DatagramSocket ds = null;
        DatagramPacket dp = null;
        
        // 構建發送對象
        ds = new DatagramSocket();
        // 將數據打包-->打成數據報
        String info = "hello world!";
        
        dp = new DatagramPacket(info.getBytes(), info.length(), InetAddress.getByName("localhost"),3333);
        
        // 發出數據報
        ds.send(dp);
        
    }

}

java的TCP和UDP編程