Sockets

Amigos consegui rodar meu socket.
Então estou conseguindo enviar uma string do servidor para o cliente

Servidor

[code]
import java.lang.;
import java.io.
;
import java.net.*;

class Server {
public static void main(String args[]) {
String data = “Mensagem teste servidor marcio >>>>”;
try {
ServerSocket srvr = new ServerSocket(9000);
Socket skt = srvr.accept();
System.out.print(“Servidor Conectado!\n”);
PrintWriter out = new PrintWriter(skt.getOutputStream(), true);
System.out.print(“Enviando mensagem: '” + data + “’\n”);
out.print(data);
out.close();
skt.close();
srvr.close();
}
catch(Exception e) {
System.out.print(“Erro Servidor”);
}
}
}[/code]

Cliente

[code]
import java.lang.;
import java.io.
;
import java.net.*;

class Client {
public static void main(String args[]) {
try {
Socket skt = new Socket("localhost", 9000);

     BufferedReader in = new BufferedReader(new
        InputStreamReader(skt.getInputStream()));
     System.out.print("Mensagem recebida: '");

     while (!in.ready()) {}
     System.out.println(in.readLine()); // Read one line and output it

     System.out.print("'\n");
     in.close();
  }
  catch(Exception e) {
     System.out.print("Erro cliente \n");
  }

}
}[/code]

Agora a dúvida.
Nesse meu exemplo as string foi passada através da classe Servidor.

No meu cenário real, existe um aparelho que esta na rua enviando mensagens para meu IP Fixo + Porta.

Como ficaria minha classe servidor ?

Obrigado.

de uma olhada
http://javaaberto.blogspot.com.br/2012/12/sockets.html

Amigo fiz exatamente como no exemplo.

só que não estou sabendo como pegar o que esta na porta

Servidor

[code]import java.io.;
import java.net.
;

public class servidor {
private ServerSocket server;
private Socket socket;
private InputStream entrada;
private BufferedReader read;

public servidor() {
	try {
		server = new ServerSocket(9000);
		System.out.println("Servidor aguardando conexao.");
		socket = server.accept();
		entrada = socket.getInputStream();
		read = new BufferedReader(new InputStreamReader(entrada));
		System.out.println(read.readLine());
		read.close();
		socket.close();
		server.close();

	} catch (IOException ex) {
		ex.printStackTrace();
	}

}

public static void main(String[] args) {
	// Chama o método construtor na classe
	new servidor();
}

}
[/code]

Cliente

[code]
import java.io.;
import java.net.
;

public class cliente {
public cliente() {

}

public static void main(String[] args) {
	try {
		Socket socket = new Socket("127.0.0.1", 9000);
		OutputStream saida = socket.getOutputStream();
		PrintStream escrita = new PrintStream(saida);

		if (args.length > 0) {
			escrita.println(args[0]);
		} else {
			escrita.println("Alucard");
		}
	} catch (UnknownHostException ex) {
		ex.printStackTrace();
	} catch (IOException ex) {
		ex.printStackTrace();
	}
}

}[/code]

o retorno

Servidor aguardando conexao.
Alucard

Você precisa conhecer o protocolo do aparelho e, em se tratando de um hardware, há altas chances dele ser binário. Leia:

Amigos olha
na verdade o codigo esta fazendo o que quero mas precisa ser ao contrario
por exemplo.

esse cara aqui

[code]class Server {
public static void main(String args[]) {
String data = “Mensagem teste servidor marcio >>>>”;
try {
ServerSocket srvr = new ServerSocket(9000);
Socket skt = srvr.accept();
System.out.print(“Servidor Conectado!\n”);
PrintWriter out = new PrintWriter(skt.getOutputStream(), true);
System.out.print(“Enviando mensagem: '” + data + “’\n”);
out.print(data);
out.close();
skt.close();
srvr.close();

  }
  catch(Exception e) {
     System.out.print("Erro Servidor");
  }

}
}[/code]

Enviou uma mensagem para esse outro cara

[code]
import java.lang.;
import java.io.
;
import java.net.*;

class Client {
public static void main(String args[]) {
try {
Socket skt = new Socket("localhost", 9000);

     BufferedReader in = new BufferedReader(new
        InputStreamReader(skt.getInputStream()));
     System.out.print("Mensagem recebida: '");

     while (!in.ready()) {}
     System.out.println(in.readLine()); // Read one line and output it

     System.out.print("'\n");
     in.close();
  }
  catch(Exception e) {
     System.out.print("Erro cliente \n");
  }

}
}[/code]

Em meu cenário é ao contrario
o primeiro codigo é quem esta enviando as mensagens não é ?

no meu caso quem esta enviando as mensagens é o aparelho

forum é óitimo mas para me expressar as vezes tenho dificuldade

nao teria que ter um input ao inves de output ?

[code] String data = "Mensagem teste servidor marcio >>>>";
try {
ServerSocket srvr = new ServerSocket(9000);
Socket skt = srvr.accept();
System.out.print("Servidor Conectado!\n");

     PrintWriter out = new PrintWriter(skt.getOutputStream(), true);
     
    [b] InputStream input = skt.getInputStream();[/b]

[/code]

eu rodei e retornou isso

---->java.net.SocketInputStream@7d2a1e44