Pessoal fiz um servidor para receber informações dos cliente. Até ae tudo beleza, agora preciso fazer para o cliente enviar mensagens… Não estou conseguindo!
Fiz o cliente utilizando: sock = new Socket(“IP”,PORT);
onde IP é o IP do servidor e PORT é a porta que o servidor espera a conexão!
Mas não estou achando o sock.send… sei lá algo relativo a isso… alguém poderia me ajudar?
Se você quiser enviar dados por um socket, você precisa “escrever” no outpustream desse socket.
O OutputStream você consegue chamando o método getOutputStream() da classe Socket. Depois basta usar os métodos de escrita mais adequado para a sua ocasião. Lembrando de sempre dar um flush() quando você kiser realmente enviar os seus dados, só pra garantir…
uhahuah “pior” modo de dizer, gosto muito do livro que comprei! eu já o Deitel e achei que não faz meu tipo o livro… se conseguir algo! Agora tive uns contra-tempos aqui para resolver, se tudo der certo ainda quero mexer este final de ano no projeto!
Eu de imediato precisava de um servidor que recebesse mensagens de um ou mais clientes e salvase em arquivos de texto mesmo… para mim a parte de como receber as informações em fluxo seria bem legal… o mais dificil é entender como ele irá ficar recebendo os dados pela rede…
velho, só deu pra postar fds:
Segue as duas classes, é bem simples, você pode melhorar, utilizando threads e um interface grafica melhor.
import java.io.*;
import java.net.*;
import javax.swing.JOptionPane;
class ClienteTCP
{
public static void main(String argv[]) throws Exception
{
String ip;
int porta;
String frase="a";
String str;
ip=JOptionPane.showInputDialog("Digite o numero do ip");
str=JOptionPane.showInputDialog("Digite o numero da porta","6789");
porta=Integer.parseInt(str);
while(frase!=null)
{
BufferedReader doUsuario= new BufferedReader(new InputStreamReader(System.in));
Socket socketCliente=new Socket(ip, porta);
DataOutputStream paraServidor= new DataOutputStream(socketCliente.getOutputStream());
BufferedReader doServidor= new BufferedReader( new InputStreamReader(socketCliente.getInputStream()));
frase= JOptionPane.showInputDialog("Digite a Mensagem");
paraServidor.writeBytes(frase + "\n");
socketCliente.close();
}
}
}
import java.io.*;
import java.net.*;
import javax.swing.JOptionPane;
class ServidorTCP
{
public static void main(String args[]) throws Exception
{
String fraseCliente;
String fraseMaiuscula;
String str;
int porta;
str=JOptionPane.showInputDialog("Digite a porta de comunicacao para o servidor", "6789");
porta=Integer.parseInt(str);
ServerSocket socketRecepcao= new ServerSocket(porta);
while(true)
{
Socket socketConexao=socketRecepcao.accept();
BufferedReader doCliente= new BufferedReader(new InputStreamReader(socketConexao.getInputStream()));
DataOutputStream paraCliente= new DataOutputStream(socketConexao.getOutputStream());
fraseCliente= doCliente.readLine();
JOptionPane.showMessageDialog(null, fraseCliente,"Mensagem Recebida", JOptionPane.INFORMATION_MESSAGE);
}
}
}