package ar.com.javacuriosities.networking.tcp.transfer;
import java.io.BufferedInputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.OutputStream;
import java.net.ServerSocket;
import java.net.Socket;
public class Step1ServerSocketTCP {
public static void main(String[] args) {
try (ServerSocket serverSocket = new ServerSocket(9500)) {
while (true) {
System.out.println("Waiting client...");
Socket clientSocket = serverSocket.accept();
System.out.println("Accepted connection : " + clientSocket.getInetAddress());
// Creamos un array de bytes para ir leyendo el file, acá creamos un array pequeño para el ejemplo
byte[] bytes = new byte[10];
// Pedimos el output stream
OutputStream os = clientSocket.getOutputStream();
InputStream resourceAsStream = Thread.currentThread().getContextClassLoader().getResourceAsStream("data.txt");
BufferedInputStream bis = new BufferedInputStream(resourceAsStream);
int bytesRead = 0;
while ((bytesRead = bis.read(bytes)) != -1) {
System.out.println("Sending file (" + bytesRead + " bytes)");
os.write(bytes, 0, bytesRead);
}
os.close();
bis.close();
System.out.println("Done.");
}
} catch (IOException e) {
// Log and Handle exception
e.printStackTrace();
}
}
}