Ho un problema di comunicazione client-server.
Il client riceve la prima stringa con :
socketIn = new Scanner(socket.getInputStream()); String stringa=in.nextLine(); System.out.println(stringa);
e il server invia il server con :
out = new PrintWriter(socket.getOutputStream()); out.println("pippo");out.flush;
Il problema che riceve la prima stringa e la stampa correttamente poi però il server ne invia di successive e poi si blocca aspettando l'invio di istruzioni dal client, ma è come se non le ricevesse. Ha cosa può essere dovuto il problema (lavoro con eclipse) devo fare qualcosa sul client.??
Questo il codice client:
codice:
import java.io.BufferedReader;
import java.io.IOException;
import java.io.PrintStream;
import java.io.PrintWriter;
import java.net.Socket;
import java.util.NoSuchElementException;
import java.util.Scanner;
import java.util.StringTokenizer;
import java.awt.*;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.io.*;
import java.util.*;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
public class LineClient implements ActionListener {
private String ip;
private int port;
private JButton l;
private String input;
private Scanner socketIn;
private PrintWriter socketOut;
private String coloreGiocatore;
private String partita;
private String tessera;
private String delim=":,";
public LineClient(String ip, int port) {
this.ip = ip;
this.port = port;
}
public static void main(String[] args) {
LineClient client = new LineClient("127.0.0.1", 4747);
try {
client.startClient();
} catch (IOException e) {
System.err.println(e.getMessage());
}
}
public void actionPerformed(ActionEvent e)
{
Object source = e.getSource();
if (source == l){
input="Continua";
socketOut.println(input);socketOut.flush();
}
}
public void startClient() throws IOException {
Socket socket = new Socket(ip, port);
System.out.println("Connection established");
socketIn = new Scanner(socket.getInputStream());
socketOut = new PrintWriter(socket.getOutputStream());
Scanner stdin = new Scanner(System.in);
try {
while (true) {
String socketLine = socketIn.nextLine();//ricevo inizio partita
mainFrame.openMainFrame();
mainFrame.startframe.setVisible(false);
riceviInizio(socketLine);
socketLine = socketIn.nextLine();
System.out.println(socketLine);
}
} catch(NoSuchElementException e) {
System.out.println("Connection closed");
} finally {
stdin.close();
socketIn.close();
socketOut.close();
socket.close();
}
}