我正在努力使2个客户端可以彼此发送文件,而无需服务器来调解文件。反正有这样做吗?
我尝试在2个客户端之间创建套接字连接,但是没有用。
编辑:添加了发送代码
这是用于发送文件的:
public void sendFile(File file) {
Message message = new Message(Message.Action.REQUEST_FILE);
message.setText(file.getName());
message.setUsername(model.getUsername());
try {
ServerSocket receiver = new ServerSocket(9002);
byte []buffer = new byte[(int)file.length()];
OutputStream out = null;
Socket s = null;
s = receiver.accept();
System.out.println("Aceite conneccao de: " + s);
FileInputStream fis = new FileInputStream(file);
BufferedInputStream in = new BufferedInputStream(fis);
in.read(buffer, 0, buffer.length);
out = s.getOutputStream();
System.out.println("A enviar o ficheiro!");
out.write(buffer, 0, buffer.length);
out.flush();
out.close();
in.close();
s.close();
System.out.println("Finished Sending");
} catch (Exception ex) {
System.exit(0);
}
}
EDIT_2:添加了用于接收的代码
public void fileAccepted(String host) { //Host = IP or localhost
/**
* Create connection with client and send the file.
*/
Thread files = new Thread();
while(!files.isInterrupted()){
try{
byte []buffer = new byte[999999999];
Socket recebe = new Socket(host, 9002);
InputStream is = recebe.getInputStream();
}catch(UnknownHostException e){
System.out.println("Unknown Host" + e);
}catch(IOException e){
System.out.println("Error Socket" + e);
};
}
}
我希望这2个客户端能够在没有服务器中介的情况下互相发送文件。