zoukankan      html  css  js  c++  java
  • 用socket方式传输Image和Sound文件

    import java.io.File;
    import java.io.FileInputStream;
    import java.io.IOException;
    import java.io.ObjectOutputStream;
    import java.net.ServerSocket;
    import java.net.Socket;
    import java.util.Scanner;
    
    public class MediaServer {
        private static ServerSocket serverSocket;
        private static final int PORT = 12345;
    
        public static void main(String[] args) {
            System.out.println("Opening port...");
            try {
                serverSocket = new ServerSocket(PORT);
            } catch (IOException e) {
                System.out.println("Unable to attach to port!");
                System.exit(1);
            }
            do {
                try {
                    Socket connection = serverSocket.accept();
                    Scanner in = new Scanner(connection.getInputStream());
                    ObjectOutputStream out = new ObjectOutputStream(connection.getOutputStream());
                    String message = in.nextLine();
                    System.out.println(message);
                    if (message.equalsIgnoreCase("image")) {
                        sendFile("F://apple.jpg", out);
                    }
                    if (message.equalsIgnoreCase("sound")) {
                        sendFile("F://Matthew.mp3", out);
                    }
                    in.close();
                } catch (Exception e) {
                    e.printStackTrace();
                }
            } while (true);
        }
    
        private static void sendFile(String filePath, ObjectOutputStream out) throws Exception {
            FileInputStream fileInputStream = new FileInputStream(filePath);
            long fileLeng = new File(filePath).length();
            int length = (int) fileLeng;
            byte[] bytes = new byte[(int) length];
            fileInputStream.read(bytes);
            fileInputStream.close();
            out.writeObject(bytes);
            out.flush();
        }
    
    }
    import java.io.FileOutputStream;
    import java.io.ObjectInputStream;
    import java.io.PrintWriter;
    import java.net.InetAddress;
    import java.net.Socket;
    import java.net.UnknownHostException;
    import java.util.Scanner;
    
    public class MediaClient {
        private static InetAddress host;
        private static final int PORT = 12345;
    
        public static void main(String[] args) {
            try {
                host = InetAddress.getLocalHost();
            } catch (UnknownHostException e) {
                System.out.println("Host ID not found.");
                System.exit(1);
            }
            try {
                Socket connection = new Socket(host, PORT);
                ObjectInputStream in = new ObjectInputStream(connection.getInputStream());
                PrintWriter out = new PrintWriter(connection.getOutputStream(), true);
                Scanner userIn = new Scanner(System.in);
                System.out.println("Enter request (image/sound):");
                String message = userIn.nextLine();
                while (!message.equalsIgnoreCase("image") && !message.equalsIgnoreCase("sound")) {
                    System.out.println("Try again:");
                    System.out.println("Enter request (image/sound):");
                    message = userIn.nextLine();
                }
                userIn.close();
                out.println(message);
                getFile(in, message);
                connection.close();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    
        private static void getFile(ObjectInputStream in, String message) throws Exception {
            byte[] byteArray = (byte[]) in.readObject();
            FileOutputStream outputStream;
            if (message.equalsIgnoreCase("image")) {
                outputStream = new FileOutputStream("E://apple.jpg");
            } else {
                outputStream = new FileOutputStream("E://Matthew.mp3");
            }
            outputStream.write(byteArray);
            outputStream.close();
        }
    }
  • 相关阅读:
    反应堆模式
    ABP领域层——仓储(Repositories)
    如何使用ASP.NET Web API OData在Oracle中使用Entity Framework 6.x Code-First方式开发 OData V4 Service
    dapper的Dapper-Extensions用法(一)
    VisualStudio 怎么使用Visual Leak Detector
    Visual Studio Code开发TypeScript
    Topshelf创建Windows服务
    ENode框架初始化
    知已者明(转)
    配置静态监听解决ORA-12514错误的案例(转)
  • 原文地址:https://www.cnblogs.com/liaojie970/p/5431089.html
Copyright © 2011-2022 走看看