(Resolvido!)Problemas com um código server

2 respostas
W

Pessoal não consigo executar o seguinte código:

package beatbox.server.com;

import java.io.*;
import java.net.*;
import java.util.*;


public class MusicServer{
	ArrayList<ObjectOutputStream> clientOutputStreams;
	
	public static void main (String[] args) {
		new MusicServer().go();
	}
	
	public class ClientHandler implements Runnable{
		ObjectInputStream in;
		Socket clientSocket;
	
	
	public  ClientHandler(Socket socket) {
	try{
		clientSocket = socket;
		in = new ObjectInputStream(clientSocket.getInputStream());

	}catch(Exception ex) {ex.printStackTrace();}
}
	
	public void run() {
		Object o2 = null;
		Object o1 = null;
		try{
			while((o1 = in.readObject()) != null){
				o2 = in.readObject();
				
				System.out.println("read two objects");
				
				tellEveryone(o1,o2);
			}
			
		}catch(Exception ex) {ex.printStackTrace();}
	}
	
	}
	
	public void go() {
		clientOutputStreams = new ArrayList<ObjectOutputStream>();
		
		try{
			ServerSocket  serverSock = new ServerSocket(4242);
			
			while (true) {
				
				Socket clientSocket = serverSock.accept();
				ObjectOutputStream out = new ObjectOutputStream(clientSocket.getOutputStream());
				clientOutputStreams.add(out);
				
				Thread t = new Thread(new ClientHandler(clientSocket));
				t.start();
				
				System.out.println("go a connection");
				
			}
			
		}catch(Exception ex){
			ex.printStackTrace();
		}
		
	}
	
	
	public void tellEveryone(Object one, Object two){
		Iterator it = clientOutputStreams.iterator();
		while(it.hasNext()){
			try{
				ObjectOutputStream out = (ObjectOutputStream) it.next();
				out.writeObject(one);
				out.writeObject(two);
			}catch(Exception ex) {ex.printStackTrace();}
		}
						
	}
	
	}

Podem me ajudar?

O erro é esse:

java.net.BindException: Address already in use: JVM_Bind
at java.net.DualStackPlainSocketImpl.bind0(Native Method)
at java.net.DualStackPlainSocketImpl.socketBind(Unknown Source)
at java.net.AbstractPlainSocketImpl.bind(Unknown Source)
at java.net.PlainSocketImpl.bind(Unknown Source)
at java.net.ServerSocket.bind(Unknown Source)
at java.net.ServerSocket.(Unknown Source)
at java.net.ServerSocket.(Unknown Source)
at beatbox.server.com.MusicServer.go(MusicServer.java:49)
at beatbox.server.com.MusicServer.main(MusicServer.java:12)

2 Respostas

drsmachado

Viu isso

java.net.BindException: Address already in use: JVM_Bind ?
Isso significa que a porta requisitada para o server socket já está sendo utilizada. Escolha outra.

W

É você tem razão, obrigado cara!

Criado 14 de setembro de 2013
Ultima resposta 15 de set. de 2013
Respostas 2
Participantes 2