javaee学习日记之java基础之网络通讯

来源:互联网 发布:c语言入门经典例题 编辑:程序博客网 时间:2024/06/08 19:33

URL

import java.io.IOException;import java.io.InputStream;import java.io.RandomAccessFile;import java.net.MalformedURLException;import java.net.URL;import java.net.URLConnection;public class Test {    public static void main(String[] args) {        URL url = null;        try {            url = new URL(                    "http://pic4.nipic.com/20091020/1951212_110225287435_2.jpg");//定义网络地址            URLConnection uc = url.openConnection();//连接            try (InputStream in = uc.getInputStream(); RandomAccessFile raf = new RandomAccessFile("gril.jpg", "rw");) {//创建输入流获取网络文件流,创建输入输出流写入本地                byte[] b = new byte[1024];//一次写入1kb                int len = 0;                while ((len = in.read(b)) != -1) {//判断是否还有内容                    raf.write(b, 0, len);//写入从0-(length-1)                }            } catch (MalformedURLException e) {                // TODO Auto-generated catch block                e.printStackTrace();            } catch (IOException e) {                // TODO Auto-generated catch block                e.printStackTrace();            }        } catch (MalformedURLException e1) {            // TODO Auto-generated catch block            e1.printStackTrace();        } catch (IOException e1) {            // TODO Auto-generated catch block            e1.printStackTrace();        }    }}

UDP

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 FourClient {        /*实现一直通信。就是你来我往,直到输入其中一端说,bye。*/        public static void main(String[] args) {            try {                DatagramSocket ds = new DatagramSocket(18000);//创建套接字对象,指定端口号                while(true){//持续接收                byte[] b = new byte[1024];                DatagramPacket dp = new DatagramPacket(b, b.length);//接收数据                ds.receive(dp);//接收                String se = new String(b);                System.out.println(se);//输出                if(se.equals("bye")){                    break;                }                Scanner sc = new Scanner(System.in);//输入                String s = sc.next();                byte[] barr = s.getBytes();                DatagramPacket dps = new DatagramPacket(barr, barr.length, InetAddress.getByName("127.0.0.1"),                        dp.getPort());//发送的地址                ds.send(dps);//发送                if(s.equals("bye")){                    break;                }                }                ds.close();//关闭资源            } catch (SocketException e) {                // TODO Auto-generated catch block                e.printStackTrace();            } catch (IOException e) {                // TODO Auto-generated catch block                e.printStackTrace();            }        }}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 FourServer {    public static void main(String[] args) {        try {            DatagramSocket ds = new DatagramSocket(32111);//创建套接字对象,指定端口号            while(true){            Scanner sc = new Scanner(System.in);            String s = sc.next();            byte[] b = s.getBytes();            DatagramPacket dp = new DatagramPacket(b, b.length,InetAddress.getByName("127.0.0.1"),18000);//指定地址            ds.send(dp);//发送            if(s.equals("bye")){                break;            }//当发送数据为bye时关闭            byte[] barr = new byte[1024];            DatagramPacket dps = new DatagramPacket(barr,barr.length);//接收设置            ds.receive(dps);//接收            String se = new String(barr);            System.out.println(se);//输出            if(se.equals("bye")){                break;            }//当输出为bye时关闭            }            ds.close();//关闭资源        } catch (SocketException e) {            // TODO Auto-generated catch block            e.printStackTrace();        } catch (UnknownHostException e) {            // TODO Auto-generated catch block            e.printStackTrace();        } catch (IOException e) {            // TODO Auto-generated catch block            e.printStackTrace();        }    }}

TCP

import java.io.BufferedReader;import java.io.IOException;import java.io.InputStreamReader;import java.net.ServerSocket;import java.net.Socket;public class Test {    public static void main(String[] args) {        try {            ServerSocket server = new ServerSocket(9000);// 设置端口            Socket socket = server.accept();// 建立套件字            BufferedReader br = new BufferedReader(new InputStreamReader(socket.getInputStream()));// 创建输入流            String s = br.readLine();// 获得接收的信息            System.out.println(s);// 输出        } catch (IOException e) {            e.printStackTrace();        }    }}import java.io.BufferedWriter;import java.io.IOException;import java.io.OutputStreamWriter;import java.net.Socket;public class Tool {    public static void main(String[] args) {        Socket socket = null;        try {            socket = new Socket("127.0.0.1", 9000);// 创建套接字连接服务器IP地址,端口号            BufferedWriter bw = new BufferedWriter(new OutputStreamWriter(socket.getOutputStream()));// 获取输出流            String s = "你好么?????";            bw.write(s);// 进行输出            bw.close();// 关闭资源        } catch (IOException e) {            e.printStackTrace();        } finally {            try {                socket.close();// 关闭资源            } catch (IOException e) {                e.printStackTrace();            }        }    }}
原创粉丝点击