Can someone help me to find a tutorial or sample java code to
read a file from any machine which is in the same network
This is not that simple! To use Server Client Aplications you need a Network API.
I have 1 by DeBukkit and an extended version. If you would to send Files I will suggest my one (Server Client Extended .jar) becazse there is an Option to send Files (FilePacket.java).
This are the links to the libs: All Libs
Code for Server for Client Server Extended:
public class TestServer extends Server {
public TestServer() {
super(29898, true, true,true);
registerMethod("bt", new FileReciver() {
@Override
public void onCompleteRecive(FileInfo data) {
System.out.println("Completely recived : "+data);
Path p = Paths.get(data.getName());
try {
Files.createFile(p);
Files.write(p, data.getContent());
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
/**
* @see com.bebukkit.niton.network.packets.buffer.BufferedPacketReciver#run(com.bebukkit.niton.network.packets.Packet, java.net.Socket)
*/
@Override
public void run(Packet extends Serializable> msg, Socket socket) {
super.run(msg, socket);
sendMessage(new Packet("", null), socket);
}
});
}
@Override
public void preStart()
{
registerMethod("msg", new ReciveMethod() {
@Override
public void run(Packet extends Serializable> msg, Socket socket) {
broadcastMessage(msg);
}
});
}
@Override
public void onWrongDataPacketException(ClassNotFoundException e) {
// TODO Auto-generated method stub
}
@Override
public void onReceivePacketError(IOException e) {
// TODO Auto-generated method stub
}
@Override
public void onPacketReckognized(ServerSocket socket) {
// TODO Auto-generated method stub
}
@Override
public void onPacketSendException(Exception e, Packet extends Serializable> message, Socket socket2) {
// TODO Auto-generated method stub
}
@Override
public void onSendPacketToNotConnectedClient(Packet extends Serializable> message, Socket socket2) {
// TODO Auto-generated method stub
}
@Override
public void onBrodcast(Packet extends Serializable> pack) {
// TODO Auto-generated method stub
}
@Override
public void onServerStartError(IOException e) {
// TODO Auto-generated method stub
}
@Override
public void onServerStop() {
// TODO Auto-generated method stub
}
}
Code for Client:
package com.bebukkit.niton.network.test;
import java.io.IOException;
import java.io.Serializable;
import java.net.Socket;
import java.util.Scanner;
import com.bebukkit.niton.network.Client;
import com.bebukkit.niton.network.packets.Packet;
import com.bebukkit.niton.network.packets.ReciveMethod;
public class TestClient extends Client {
public TestClient() {
super("localhost", 29898, 5000, false,true);
registerMethod("msg", new ReciveMethod() {
@Override
public void run(Packet extends Serializable> msg, Socket socket) {
System.out.println(msg.getData());
}
});
registerMethod("replay", new ReciveMethod() {
@Override
public void run(Packet extends Serializable> msg, Socket socket) {
System.out.println("REREplay");
}
});
}
@Override
public void onSocketClosingFail() {
// TODO Auto-generated method stub
}
@Override
public void onLoginPacketSendingFailed(IOException ex) {
// TODO Auto-generated method stub
}
@Override
public void onConnectionError(IOException ex) {
// TODO Auto-generated method stub
}
@Override
public void onMessageReciveError(Exception ex) {
// TODO Auto-generated method stub
}
@Override
public void onPacketSendError(Exception ex, Packet extends Serializable> pack) {
// TODO Auto-generated method stub
}
@Override
public void start() {
super.start();
}
}
You need a seperated Server + Client Starter:
package com.bebukkit.niton.network.test;
public class ServerStarter {
public static void main(String[] args) {
new TestServer();
}
}
Client:
package com.bebukkit.niton.network.test;
import java.io.File;
import java.io.IOException;
import java.nio.file.Files;
import javax.swing.JFileChooser;
import com.bebukkit.niton.network.packets.Packet;
import com.bebukkit.niton.network.packets.buffer.BufferedPacket;
import com.bebukkit.niton.network.packets.file.FileInfo;
import com.bebukkit.niton.network.packets.file.FilePacket;
public class ClientStarter {
public static void main(String[] args) throws IOException {
TestClient tc = new TestClient();
tc.start();
new Thread(new Runnable() {
@Override
public void run() {
try {
Thread.sleep(3000);
} catch (InterruptedException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
JFileChooser c = new JFileChooser("Choose a file to upload");
c.setFileSelectionMode(JFileChooser.FILES_ONLY);
c.showDialog(null,"Upload");
File f = c.getSelectedFile();
try {
tc.sendMessage(new FilePacket("file", f));
tc.sendMessage(new Packet("replay","test"));
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}).start();
}
}