Java Socket Exception op Android-app, Hulp nodig?

Ik probeer een Android-applicatie te ontwikkelen, maar ik sta een aantal problemen tegen het proberen om mijn telefoon verbinding te laten maken met mijn server. Oorspronkelijk kreeg ik bij het proberen verbinding te maken met mijn server een IOException die ik uiteindelijk heb opgelost door permissies in het manifest te plaatsen. Nu krijg ik een Socket-uitzondering: "Connection Refused", ik ben er volledig zeker van dat de server luistert omdat ik een ander programma op mijn computer kan uitvoeren in gewoon Java dat verbinding maakt met de server en het werkt prima. Ik heb de clienttoepassing zowel op de emulator als op mijn huidige telefoon (op mijn WiFi-netwerk) uitgevoerd met zowel het IP-adres van mijn computer als "localhost". Mijn vraag is of iemand een idee heeft waarom dit gebeurt. Dit is een deel van de code:

Cliënt:

package com.patyo.money4free;

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintWriter;
import java.net.Socket;
import java.net.UnknownHostException;

import android.app.Activity;
import android.content.Intent;
import android.graphics.Color;
import android.os.Bundle;
import android.view.View;
import android.widget.Button;
import android.widget.EditText;
import android.widget.TextView;

public class Tutorial_Accountname extends Activity{
    Button bSubmit;
    EditText Account,ConfirmAccount;
    TextView ErrorText;

protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.tutorial_accountname);

    bSubmit = (Button) findViewById (R.id.AccountNameSubmitButton);
    Account = (EditText) findViewById (R.id.AccountName);
    ConfirmAccount = (EditText) findViewById (R.id.ConfirmAccountName);
    ErrorText = (TextView) findViewById (R.id.AccountNameErrorText);

    if(!TutorialGolbals.Username.equals(""))
    {
        Account.setText(TutorialGolbals.Username);
        ConfirmAccount.setText(TutorialGolbals.Username);
    }


    bSubmit.setOnClickListener(new View.OnClickListener() {

        public void onClick(View v) {
            String username = Account.getText().toString();
            String confusername = ConfirmAccount.getText().toString();

            if(username.equals(confusername)){
                if(username.equals(""))
                {
                    ErrorText.setTextColor(Color.RED);
                    ErrorText.setText("Username Field is Empty!");
                }else{
                    ErrorText.setText("Testing Account...");
                    BufferedReader in = null;
                    PrintWriter out = null;
                    Socket connection = null;
                    try {
                        //This is where it throws exception
                        connection = new Socket(Server_Globals.address,Server_Globals.port_create);
                        in = new BufferedReader(new InputStreamReader(connection.getInputStream()));
                        out = new PrintWriter(connection.getOutputStream(), true);
                    } catch (UnknownHostException e) {
                        ErrorText.setTextColor(Color.RED);
                        ErrorText.setText("Sorry, Cannot Connect to Server");
                        return;
                    } catch (IOException e) {
                        ErrorText.setTextColor(Color.RED);
                        ErrorText.setText("Sorry, Cannot Connect to Server");
                        return;
                    }
                    String s = "";
                    s+="Try Account\r\n";
                    s+=username+"\r\n";
                    out.write(s);
                    out.flush();
                    boolean reading = true;
                    String response = null;
                    try {
                        while(reading){
                                if(in.ready())
                                {
                                    response = in.readLine();
                                    reading = false;
                                }
                        }
                    } catch (IOException e) {
                       //TODO Auto-generated catch block
                        e.printStackTrace();
                        reading = false;
                        ErrorText.setTextColor(Color.RED);
                        ErrorText.setText("Sorry, Cannot Connect to Server");
                    }

                    if(response.equals("TRUE")){
                        Intent nextArea = new Intent("com.patyo.money4free.TUTORIALEMAIL");
                        TutorialGolbals.Username = username;
                        startActivity(nextArea);
                    }
                    else if(response.equals("FALSE")){
                        ErrorText.setTextColor(Color.RED);
                        ErrorText.setText("Someone Already Has That Username!");
                    }
                }
            }else{
                ErrorText.setTextColor(Color.RED);
                ErrorText.setText("Usernames are Not the Same!");
            }
        }
    });
}
}

Het deel van de server dat verbindingen zoekt:

package com.patyo.money4free.server;

import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;

public class Lookout_CreateAccount {

private static final int port = 5222;
public static void main(String[] args) {
    ServerSocket server = null;
    Socket buffer = null;
    try {
        server = new ServerSocket(port);
        System.out.println("Server Started...");
    } catch (IOException e) {
       //TODO Auto-generated catch block
        e.printStackTrace();
        System.exit(-1);
    }
    while(true)
    {
        try {
            buffer = server.accept();
            System.out.println("Server Accepted Client");
            Thread buff = new Thread(new CreateAccountHandler(buffer));
            buff.start();
        } catch (IOException e) {
           //TODO Auto-generated catch block
            e.printStackTrace();
        }
    }

}

}
2

1 antwoord

De geweigerde verbinding kan worden veroorzaakt door een firewall, als ik jou was zou ik proberen de firewall op je server uit te schakelen en het opnieuw proberen, ik had hetzelfde probleem totdat ik mijn server op een open ipadres leidde

1
toegevoegd
Goede awnser maar het werkte niet, maar het gooit nog steeds de Connection Refused Error
toegevoegd de auteur user1036756, de bron