第十三天 UDP

URL

讀圖片

package com.java.test1;
import java.io.File;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.MalformedURLException;
import java.net.URL;
import java.net.URLConnection;
public class Test {
        try {
            URL url=new URL("http://p0.so.qhimg.com/t016305df33b23962a5.jpg");
            File img=new File("d:\\11.jpg");//二進制,字節流
            if(!img.exists()){
                img.createNewFile();
            }
            OutputStream os=new FileOutputStream(img);
            URLConnection connection=url.openConnection();
            InputStream is=connection.getInputStream();
            //InputStream is=url.openStream();
            byte[] array=new byte[1024];
            int i=is.read(array);
            while(i!=-1){
                os.write(array, 0, i);
                i=is.read(array);
            }
            os.flush();
            os.close();
            is.close(); 
        } catch (MalformedURLException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

網頁

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.MalformedURLException;
import java.net.URL;
public class Test {
public static void main(String[] args) {
        try {
            URL url=new URL("https://www.baidu.com/");
            InputStream is=url.openStream();
            BufferedReader br=new   BufferedReader(new InputStreamReader(is));
            String s=br.readLine();
            while(s!=null){
                System.out.println(s);
                s=br.readLine();
            }
            is.close();
            br.close();
        } catch (MalformedURLException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

UDP

package com.java.test1;
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException;
import java.net.UnknownHostException;
import java.util.Scanner;
public class Send {
    public static void main(String[] args) {
        try {
            DatagramSocket send=new DatagramSocket();
            DatagramSocket  receive=new DatagramSocket(8088);
            byte[]arr=new byte[1024];
            Scanner scanner=new Scanner(System.in);
            System.out.println("啓動發送端");
            while(true){
                //發送數據
                String s=scanner.next();
                byte[] array=s.getBytes();
                DatagramPacket packet=new DatagramPacket(array,array.length,InetAddress.getByName("192.168.0.85"),8080);
                send.send(packet);
                System.out.println("發送端發送的數據--------"+s);

                //接收回復的數據
                DatagramPacket packet1=new DatagramPacket(arr,1024);
                receive.receive(packet1);
                byte[]data=packet1.getData();
                System.out.println("發送端收到的數據是--"+new String(data,0,packet1.getLength()));
            }
        } catch (SocketException e) {
            e.printStackTrace();
        } catch (UnknownHostException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
package com.java.test1;
import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException;
import java.util.Scanner;
public class Receive {
    public static void main(String[] args) {
        try {
            DatagramSocket receive=new DatagramSocket(8080);//綁定端口
            DatagramSocket send=new DatagramSocket();
            byte [] array=new byte[1024];
            Scanner scanner=new Scanner(System.in);
            System.out.println("啓動接收端");
            while(true){
                //接收數據
                DatagramPacket packet=new DatagramPacket(array,1024);//接收數據包
                receive.receive(packet);
                System.out.println("接收端接收到的數據是:"+new String(array,0,packet.getLength()));
                //收到數據後回覆數據
                String s=scanner.next();
                System.out.println("接收端發送的數據:"+s);
                byte[] arr=s.getBytes();
                DatagramPacket packet1=new DatagramPacket(arr,arr.length,InetAddress.getByName("192.168.0.85"),8088);//發送數據到指定主機指定端口
                send.send(packet1);
            }
        } catch (SocketException e) {
            e.printStackTrace();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章