通过socket c#和java应用程序发送文件

时间:2017-05-04 14:47:15

标签: java sockets

大家好我很想通过套接字c#和java应用程序使用eclipse发送文件。当我把文件发送到eclipse项目下它工作但是当我放在c://或D://它没有这里的工作是我使用的代码 服务器

import java.net.*;
import java.io.*;

public class Server {

    public static void main(String[] args) throws IOException {
        // TODO Auto-generated method stub}
        sendFile("‪‪c:\\cassandraTest.csv");
    }
    public static Boolean sendFile(String strFileToSend) {
        try {
            ServerSocket serverSocket = new ServerSocket(1592);
            Socket socket = serverSocket.accept();
            System.out.println("Connection accepted from " + socket);
            PrintWriter out = new PrintWriter(socket.getOutputStream(), true);
            File file = new File(strFileToSend);
            // send file length
            out.println(file.length());
            // read file to buffer
            byte[] buffer = new byte[(int) file.length()];
            DataInputStream dis = new DataInputStream(new FileInputStream(file));
            dis.read(buffer, 0, buffer.length);
            // send file
            BufferedOutputStream bos = new BufferedOutputStream(
                    socket.getOutputStream());
            bos.write(buffer);
            bos.flush();
            // added
            dis.close();
            serverSocket.close();
            return true;
        } catch (Exception e) {
            e.printStackTrace();
            return false;
        }
    }



}

为客户

 public static bool receiveFile(string ip,string strFilePath)
        {   
            try
            {
                TcpClient tcpClient = new TcpClient();
                tcpClient.Connect(ip, 1592);
                NetworkStream networkStream = tcpClient.GetStream();
                StreamReader sr = new StreamReader(networkStream);
                //read file length
                int length = int.Parse(sr.ReadLine());
                //read bytes to buffer
                byte[] buffer = new byte[length];
                networkStream.Read(buffer, 0, (int)length);
                //write to file
                BinaryWriter bWrite = new BinaryWriter(File.Open(strFilePath, FileMode.Create));
                bWrite.Write(buffer);
                bWrite.Flush();
                bWrite.Close();
                return true;
            }
            catch(Exception exException)
            {
                MessageBox.Show(exException.Message);
                return false;
            }

        }

仅当文件在eclipse下时才有效,否则我从服务器应用程序中得到以下异常 Channels: list

0 个答案:

没有答案