eine Methode schreiben, die ein Socket ausgibt ?!

Diese Seite verwendet Cookies. Durch die Nutzung unserer Seite erklären Sie sich damit einverstanden, dass wir Cookies setzen. Weitere Informationen

  • eine Methode schreiben, die ein Socket ausgibt ?!

    Hallo,

    ich versuche eine Methode zu schreiben, die einen Socket erzeugt und zurückgibt. Dies soll Teil einer Extension für den AppInventor2 werden. Nun habe ich hier ein Problem. Ich habe das Problem in dem AppInventor-Forum beschrieben, dort aber keine Antwort erhalten (hätte ich mich doch gleich hier gemeldet). Ich poste hier einfach mal den gleichen Inhalt, mit der Hoffnung, dass mir hier jemand weiterhelfen kann. Deswegen auf englisch, ich hoffe das ist kein Problem?


    Hi,

    this simple code

    @SimpleFunction(description = "Gibt Socket")
    public Socket GiveSocket(String ip, int port){
    Socket socket2;
    try {socket2 = new Socket(ip, port);
    } catch (IOException e) {
    e.printStackTrace();}
    return socket2;
    }

    is supposed to make method within an extension to return a socket.

    But during compiling, I get the error "variable socket2 might not have been initialized" which is, because initialize the socket inside try{}. But if I initialize it before try{}, I then get the error "Exception IO is never thrown in body of corresponding try statement". So what can I do to satisfy the compiler? To prevent both errors, I thought I could do this:

    Socket socket2 = new Socket;

    try {socket2.connect(ip, port);
    }...

    now the exception throwing connection establishing should be in the try{} statement, and the socket2 variable, which is to be returned, is initialized outside of try{}. Unfortunately, this wont work either, because the connect() method wants a SocketAdress parameter not a IP-String... :(

    Any idea how I could fix this?

    Is it bulls*** in general to make a method which returns a Socket? Or is it possible?

    Thank you