.
No sé exactamente lo que haces, pero si esas instrucciones crean un socket, no deberías meterlo en un bucle infinito, porque estarás creando infinitos sockets.
Te recomendaría hacerlo por webservices mejor pero si nitas hacerlo x socket o similar, haz la respuesta hebrada, te pongo un mini ejemplo de server:
MediaVidaServer
import java.net.*;
import java.io.*;
public class MediaVidaServer {
public static void main(String[] args) throws IOException {
ServerSocket serverSocket = null;
boolean listening = true;
try {
serverSocket = new ServerSocket(1234);
} catch (IOException e) {
System.err.println("Muerte 1234!!!!");
//Puedes dejarlo morir con dignidad...
}
//Escuchamos, escuchamos y seguimos escuchando...
while (listening)
new MediaVidaServerThread(serverSocket.accept()).start();
serverSocket.close();
}
}
Clase MediaVidaServerThread
import java.net.*;
import java.io.*;
public class MediaVidaServerThread extends Thread {
private Socket socket = null;
public MediaVidaServerThread(Socket socket) {
super("MediaVidaServerThread");
this.socket = socket;
}
public void run() {
try {
//Aqui lo que quieras hacer :O :O
this.socket.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
EDIT: Ya que estoy pues un client guarro
int socketPort = 1234;
Socket mediaVidaSocket = new Socket("string con el nombre de la maquina", socketPort);
PrintWriter out = new PrintWriter(mediaVidaSocket.getOutputStream(), true);
InputStreamReader in = new BufferedReader(new InputStreamReader(mediaVidaSocket.getInputStream()));
while ((fromServer = in.readLine()) != null) {
System.out.println("Server: " + fromServer);
if (fromServer.equals("<mensaje de fin>"))
break;
fromUser = stdIn.readLine();
if (fromUser != null) {
System.out.println("Client: " + fromUser);
out.println(fromUser);
}
}
//Cierras toooo
out.close();
in.close();
stdIn.close();
mediaVidaSocket.close();
He puesto fuera del bucle el constructor, el cual crea el socket, y ya funciona constantemente.
Sobre los thread, ahora mismo no puedo probarlo porque necesito urgentemente finalizar otro trabajo para mañana, así que lo probaré el sábado sin falta
#6 Ok, gracias. Es una aplicación sencilla para realizar cálculos con matrices, pero igual lo implemento para que pueda ejecutarse desde más de un cliente
#4 webservice es muy de los 2000s. Ahora se lleva REST y JSON a pelo.
Cualquiera que haya trabajado con SOAP y REST me entenderá xD
#8 bueno el webservice lo puedes diseñar aplicando la arquitectura que mas te guste. rest, wsdl, xins... y la respuesta usar json , xml etc...
#9 ah, creí que te referías literalmente a WS clásicos (siempre he visto la dicotomía REST/WS aunque es cierto que técnicamente REST es un WS).