//Oi não estou conseguindo comparar strings neste meu programa cliente servidor usando socket udp, oque há de errado?
// if( rec.equals(“resposta”)){System.out.println(“ok1”);}
else{System.out.println(“ok”);}
//Não é executado corretamente
//O cliente manda mensagens para o servidor, o servidor por sua vez compara a string recebida com resposta se for igual imprime ok1 senão ok, só que isto não está ocorrendo é sempre impresso ok.
//Programa servidor
import <a href="http://java.io">java.io</a>.<em>;
import <a href="http://java.net">java.net</a>.</em>;
public class Servidor
{
public static void main(String[] args)
{
DatagramSocket socket=null;
DatagramPacket recvPacket, sendPacket;
try
{
System.out.println("=== ��� Servidor de eco no ar !!! ��� ===");
socket=new DatagramSocket(4545);
String rec=null;
while(socket!=null)
{
recvPacket=new DatagramPacket(new byte[512], 512);
socket.receive(recvPacket);
rec= new String (recvPacket.getData());
System.out.println(“digitou”+ " "+rec);
sendPacket=new DatagramPacket(recvPacket.getData(), recvPacket.getLength(),
recvPacket.getAddress(), recvPacket.getPort());
socket.send(sendPacket);
System.out.println("Mensagem recebida do Cliente: "+recvPacket.getAddress()+
“:”+recvPacket.getPort());
if( rec.equals(“resposta”)){System.out.println(“ok1”);}
else{System.out.println(“ok”);}
int c=recvPacket.getLength();
System.out.print("=> ");
System.out.println(new String (recvPacket.getData()));
System.out.print("\r\n");
System.out.print("\r\n");
}
}
catch(SocketException se)
{
System.out.println("Erro no ServidorDatagrama: "+se);
}
catch(IOException ioe)
{
System.out.println("Erro no ServidorDatagrama: "+ioe);
}
}
}
//programa cliente
import <a href="http://java.io">java.io</a>.<em>;
import <a href="http://java.net">java.net</a>.</em>;
import javax.swing.*;
public class Cliente
{
private DatagramSocket socket=null;
private DatagramPacket recvPacket, sendPacket;
public static void main(String[] args)
{
DatagramSocket socket=null;
DatagramPacket recvPacket, sendPacket;
try
{
socket=new DatagramSocket();
InetAddress hostAddress=InetAddress.getByName(“127.0.0.1”);
DataInputStream userData=new DataInputStream(System.in);
while (socket !=null)
{
//leitura da mensagem para enviar para o servidor Datagrama
System.out.print(“Mensagem para enviar: “);
String userString=JOptionPane.showInputDialog(“digite algo”);
if ((userString==null)||(userString.equals(””)))
return;
//converte o String para um Array de bytes
byte sendbuf[]=new byte[userString.length()];
userString.getBytes(0,userString.length(),sendbuf,0);
sendPacket=new DatagramPacket(sendbuf, sendbuf.length, hostAddress, 4545);
//envia o Datagrama para o servidor
socket.send(sendPacket);
//recebe o Datagrama do servidor
recvPacket=new DatagramPacket(new byte[512], 512);
socket.receive(recvPacket);
//exibe na tela do cliente a mensagem de eco do servidor Datagrama
System.out.print("Mensagem recebida (eco): ");
System.out.write(recvPacket.getData(),0,recvPacket.getLength());
System.out.print("\r\n");
System.out.print("\r\n");
}
}
catch(SocketException se)
{
System.out.println("Erro no ClienteDatagrama: "+se);
}
catch(IOException ioe)
{
System.out.println("Erro no ClienteDatagrama: "+ioe);
}
}
}