Boa tarde a todos,
e o seguinte,
estou começando a trabalhar com sockets… hoje… ja dei uma boa lida na net sobre ao assunto e com base no que aprendi modifiquei as duas classes para trabalhar ( similar ) uma comunicaçao via socket emtre cliente/servidor.
segue: SERVER
package socket;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
public class SocketServer {
ServerSocket srvcktServer;
public SocketServer(){
while (true)
{
try{
System.out.println("Listening... Port:8080");
srvcktServer = new ServerSocket(8080);
Socket sckSocket = srvcktServer.accept();
DataInputStream dtaIn = new DataInputStream(sckSocket.getInputStream());
DataOutputStream dtaOut = new DataOutputStream(sckSocket.getOutputStream());
System.out.println(sckSocket.getPort() + " Recebendo dados..");
String sIn = dtaIn.readUTF();
dtaOut.writeUTF("[OK] RECEBIDO !");
dtaOut.flush();
System.out.println(sIn);
dtaIn.close();
dtaOut.close();
srvcktServer.close();
}catch(IOException err){
System.out.println(err);
System.out.println("ESTOURO DE CONEXÕES !");
System.out.println("Restartando Autorizador....");
//ReconnectSocket();
} catch(StackOverflowError err){
System.out.println("ESTOURO DE CONEXÕES !");
System.out.println("Restartando Autorizador....");
//ReconnectSocket();
}
//ReconnectSocket();
}
}
public static void ReconnectSocket(){
SocketServer obj = new SocketServer();
}
public static void main(String args[]){
ReconnectSocket();
}
}
segue: Cliente
package socket;
import java.io.*;
import java.net.*;
public class SocketClient {
public void Start(){
try {
Socket sckClient = new Socket("192.168.2.144",8080);
DataInputStream dtaIn = new DataInputStream(sckClient.getInputStream());
DataOutputStream dtaOut = new DataOutputStream(sckClient.getOutputStream());
System.out.println("Conectando em: 192.168.2.144:80");
dtaOut.writeUTF("0215698987458");
System.out.println(dtaIn);
String sIn = dtaIn.readUTF();
System.out.println(sIn);
}catch(UnknownHostException err){
System.out.println(err);
}catch(IOException err){
System.out.println(err);
}
}
}
Minha duvida e o seguinte dessa forma esta correta a implementação do uso de socket sem relação a ele responder multiplas requisições…
e dessa maneira que se faz … um loop… e sempre que se aceita a conexao depois de tratado tem que fachar a conexao.
tornar reabrir e escutar a porta…
ou a outra maneira…,
porque estou pensando no seguinte. se eu estou ocupado enviando algo se um outro computador for conetcar como fica?..