从客户端向服务器发送图像

时间:2011-03-10 08:28:05

标签: java

我是JAVA的新手,所以请放轻松。

我有一个服务器和一个客户端可以成功连接到彼此和其他东西,但客户端的一个功能是将图像发送到服务器。任何人都可以提供代码(在java中,而不是Web应用程序) )。

1 个答案:

答案 0 :(得分:5)

欢迎使用Java!

要完成手头的任务,您可以使用套接字。

客户代码:

function sendFile (String serverIp, int serverPort) {
    int i;
    FileInputStream fis = new FileInputStream ("/path/to/your/image.jpg");

    Socket sock = new Socket(serverIp, serverPort);
    DataOutputStream os = new DataOutputStream(sock.getOutputStream());
    while ((i = fis.read()) > -1)
        os.write(i);

    fis.close();
    os.close();
    sock.close();
}

服务器代码:

function listenForFile(int port) {
    ServerSocket socket = new ServerSocket(serverPort);
        while (true) {

            Socket clientSocket = socket.accept();

            DataInputStream dis = new DataInputStream(clientSocket.getInputStream());
            FileOutputStream fout = new FileOutputStream("/path/to/store/image.jpg");
            int i;
            while ( (i = dis.read()) > -1) {
                fout.write(i);
            }

            fout.flush();
            fout.close();
            dis.close();
            clientSocket.close();
        }
}

请注意,在客户端上调用sendFile()之前,必须先调用服务器方法listenForFile()。并且,serverPort必须在两端都相同。