JAVA温习课堂14

来源:互联网 发布:linux 重启后挂载失败 编辑:程序博客网 时间:2024/04/27 06:29
52、TCP/IP 编程基础(国际标准)传输控制协议TCP,网络互联协议IP    网络编程的目的:直接或间接通过网络协议与其它计算机进行通讯        准确定义网络上一台或多台主机 InetAddress.getByName(String arg);        找到主机后如何可靠高效地进行数据传输    IP定位网络中的一台主机    端口定位主机的一个网络程序    InetAddress : 对象表示网络中的一个地址    Socket 对象 (套接字): 端口号与IP地址的组合得出网络套接字         连接到远程主机        绑定到端口        接收从远程机器来的连接请求        监听到达的数据        发送数据        接收数据        关闭连接实例代码:(服务端监听端口,客户端连接至服务端,两者进行通信)    @Test    public void testServerSocket() throws IOException{        ServerSocket serverSocket = new ServerSocket(8888);        System.out.println("监听端口号8888");        Socket socket = serverSocket.accept();        OutputStream out = socket.getOutputStream();        DataOutputStream dou = new DataOutputStream(out);        dou.writeUTF("此条信息~~来自服务器");        serverSocket.close();        socket.close();    }    @Test    public void testSocket() throws IOException{        InetAddress ip = InetAddress.getLocalHost();        String ipAddress = ip.getHostAddress();        System.out.println(ipAddress);        Socket socket = new Socket(ipAddress,8888);        InputStream in = socket.getInputStream();        DataInputStream din = new DataInputStream(in);        System.out.println(din.readUTF());        din.close();        socket.close();    }实例代码:(服务端发送文件给客户端,客户端接收并存至硬盘!)    @Test    public void testFileSocket() throws IOException{        ServerSocket serverSocket = new ServerSocket(8888);        System.out.println("等待连接......");        Socket socket = serverSocket.accept();        System.out.println("连接进入");        // 获取当前类目录下的配置文件        InputStream in = this.getClass().getResourceAsStream("爱很美.jpg");        byte [] buffer = new byte[1024];        int len = 0;        OutputStream out = socket.getOutputStream();        while((len = in.read(buffer)) != -1){            out.write(buffer,0,len);        }        in.close();        out.close();        socket.close();        serverSocket.close();    }    @Test    public void testFileSocketClient() throws IOException{        InetAddress ip = InetAddress.getByName("127.0.0.1");        Socket socket = new Socket(ip,8888);        // 读取服务器发过来的数据        InputStream in  = socket.getInputStream();        OutputStream out = new FileOutputStream("E:\\爱很美.jpg");        byte[] buffer = new byte[1024];        int len = 0;        while((len = in.read(buffer)) != -1){            out.write(buffer,0, len);        }        System.out.println("获取完成");        in.close();        out.close();        socket.close();    }    UDP(DatagramSocket 和 DatagramPacket 实现基于UDP协议网络程序)        DatagramPacket:对象封装了UDP数据报,在数据报中包含了客户端的IP地址和端口号以及服务器的IP地址和端口号        DatagramSocket: 发送和接收系统不保证UDP数据报一定能够安全送到目的地,也不能确定什么时候可以抵达
更新时间:2016年10月8日
0 0
原创粉丝点击