E ae pessoal, beleza?
Sou tão novo no fórum quanto sou novo com java. Não tenho conhecimento de linguagens orientadas a objetos, mas estou fazendo um chat usando sockets. Dei uma procurada nos threads aqui do fórum e nao consegui resolver meu problema. Eu consigo enviar mensagens do “cliente” pro “servidor”, mas não o inverso. Como é um chat, o ideal seria os dois lados enviarem e receberem as mensagens.
Este é o código do cliente
package client; import <a href="http://java.io">java.io</a>.<em>; import <a href="http://java.net">java.net</a>.</em>; import java.util.Scanner;
public class Client {
public static void main(String[] args) throws IOException {Scanner teclado = new Scanner(System.in);
System.out.println("Host address:"); String host = teclado.nextLine(); System.out.println("Host port: "); int port= teclado.nextInt(); Socket cliente = new Socket(host, port); System.out.println("Connection Established: "); PrintStream saida = new PrintStream(cliente.getOutputStream()); while (teclado.hasNextLine()) { saida.println(teclado.nextLine()); } } }
E este é o codigo do servidor:
package server;
import <a href="http://java.net">java.net</a>.<em>; import <a href="http://java.io">java.io</a>.</em>; import java.util.Scanner;
public class Server {
public static void main(String[] args) throws IOException {
Scanner teclado = new Scanner(System.in); System.out.println("Host port: "); int port= teclado.nextInt(); ServerSocket servidor = new ServerSocket(port); System.out.println("Server listening on " + port); Socket cliente = servidor.accept(); System.out.println("Client " + cliente.getInetAddress().getHostAddress() + " connected on " + port);
Scanner entrada = new Scanner(cliente.getInputStream()); while(entrada.hasNextLine()){ System.out.println(entrada.nextLine()); } entrada.close(); servidor.close();
}}
Falta algo nos códigos para essa conversa bidirecional funcionar? Ou eu devo rodar um servidor e um cliente numa maquina, e outro cliente na outra para funcionar do jeito que eu preciso?
Valeu pessoal

se precisarem, podem fechar o tópico