如何停止新连接?

时间:2015-05-08 07:41:15

标签: java sockets networking

我正在尝试搜索服务器,一旦客户端找到它,他就会停止搜索新的服务器。但是现在客户端找到服务器,可以从服务器获取消息但是尝试连接到其他服务器,因此我无法编写服务器。

你们可以告诉我我的代码需要做什么吗?

ty Bono

for (pcip = 0; pcip <= 253; pcip++) {
            clientVerbindung = new ChatSocket(client.getUserName(), /*
                                                                     * Die IP an
                                                                     * welche
                                                                     * der
                                                                     * Client
                                                                     * verbindet
                                                                     */
            "10.4.0." + pcip, /* Der Port welcher verwendet wird */3005, client);
            clientVerbindung.start();
        }

ChatSocket:

public class ChatSocket extends Thread {

    private String nameDesUsers;
    private String ip;
    private int port;
    private P2P client;
    private String user;
    private String path;

    private DataInputStream inStream;
    private DataOutputStream outStream;

    public ChatSocket(String nameDesUsers, String ip, int port, P2P client) {
        this.nameDesUsers = nameDesUsers;
        this.port = port;
        this.ip = ip;
        this.client = client;
    }

    public void run() {
        try {
            Socket clientSocket = new Socket(ip, port);

            InputStream in = clientSocket.getInputStream();
            OutputStream out = clientSocket.getOutputStream();

            inStream = new DataInputStream(in);
            outStream = new DataOutputStream(out);

            // Intepretiert den erhaltenen Text. Passiert nur bei diesem Socket
            // und nicht umbedingt auch beim sender
            outStream.writeUTF(nameDesUsers);
            while (true) {
                String utf = inStream.readUTF();

                client.setMessage("Server", utf);
            }

            // Mögliche Fehlermeldungen
        } catch (UnknownHostException uhe) {
            System.out.println("Client Fehler: " + uhe.toString());
        } catch (IOException ioe) {
            System.out.println("Client Fehler: " + ioe.toString());
        }
        System.out.println("Die Verbindung wurde geschlossen.");
    }

    public void sendText(String message) {
        try {
            if (message != null) {
                // Nimmt den aktuellen Text aus dem clientText und schickt ihn
                // an den Server
                outStream.writeUTF(message);
            }

            // Mögliche Fehlermeldungen
        } catch (IOException ioe) {
            System.out.println("Fehler beim senden im Client: "
                    + ioe.toString());
        } catch (NullPointerException npe) {
            System.out.println("Fehler beim senden im Client: "
                    + npe.toString());
        }
    }
}

1 个答案:

答案 0 :(得分:0)

If there isn't a valid connection you will get a deviceready

Ergo, if you don't get that exception, you have a valid connection.

Hard to see what the mystery is.