ola a todos eu estou com sérios problemas num projeto em Java que necessita usar sockets para conectar e threads.....
Vamos lá eu preciso criar um servidor que tem o compartilhamento de um arquivo texto que permita a leitura e a escrita deste arquivo com as seguintes regras:
- ao receber uma solicitação, o servidor deverá criar uma thread para atende-la
- vários leitores podem acessar ao mesmo tempo o arquivo.
- se um escritor acessar o arquivo ninguém mais pode acessá-lo. Enquanto houver leitura o servidor enfileirará os escritores e, havendo novos leitores, eles devem ser enfileirados depois do escritor.
- se houver solicitações enquanto o arquivo estiver sendo escrito elas devem respeitar uma fila (FIFO).
bom ate agora eu tenho isso aqui, de um grande parça, alguém pode me ajudar como devo prosseguir com o mais algo???
import java.io.*;
import java.net.ServerSocket;
import java.net.Socket;
public class Servidor implements Runnable {
private DataInputStream in;
private DataOutputStream out;
private ServerSocket server;
private Socket cliente;
private volatile boolean stopped = false;
@Override
public void run() {
try {
//Cria servidor
server = new ServerSocket(8080);
System.out.println("Servidor Criado.");
while(!stopped){
if (server != null) {
cliente = server.accept();
new Thread(new ListenerSocket(cliente)).start();
}
}
} catch (IOException ex){
System.out.println("Erro: " + ex.getMessage());
}
}
private class ListenerSocket implements Runnable {
public ListenerSocket(Socket cliente) {
try {
in = new DataInputStream(cliente.getInputStream());
System.out.println("IP: " + cliente.getInetAddress().getHostAddress() + " conectou-se!");
System.out.println("Aguardando");
String acao = in.readUTF();
//Chama Método
//acaoRequerida(acao);
} catch (IOException ex){
System.out.println("Erro: " + ex.getMessage());
}
}
@Override
public void run() {
//throw new UnsupportedOperationException("Not supported yet.");
//To change body of generated methods, choose Tools | Templates.
}
}
}