0

PC から Android デバイスに接続しようとすると、「ターゲット マシンがアクティブに拒否したため、接続できませんでした」というソケット例外が発生しました。Android デバイスのサーバーのコード:

private void networkOperations()
{
    Thread networkThread = new Thread (null, doBackgroundThreadProcessing, "Network");
    networkThread.start();
}

private Runnable doBackgroundThreadProcessing = new Runnable() 
{
    public void run() {
        backgroundThreadProcessing();
    }
};

private void backgroundThreadProcessing()
{
    Socket s = null;
    ServerSocket ss = null;
    try {
        ss = new ServerSocket(8867);
    } catch (IOException e) {
        e.printStackTrace();
    }
    while(!Thread.currentThread().isInterrupted())
    {
        try {
            if (s == null)
                s = ss.accept();
            BufferedReader input = new BufferedReader(new InputStreamReader(s.getInputStream()));
            String st = null;
            st = input.readLine();
        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}

networkOperations() はメイン アクティビティの onCreate() メソッドで呼び出しています。PC(C#)でのクライアントのコード:

class Connection
{
    public Connection(String ip, String port)
    {
        Ip = IPAddress.Parse(ip);
        Port = Convert.ToInt32(port);
    }

    public IPAddress Ip
    {
        get;
        set;
    }

    public Int32 Port
    {
        get;
        set;
    }

    public Boolean ConnectionError;

    public Socket S;

    public void ConnectToServer()
    {
        IPEndPoint ipe = new IPEndPoint(Ip, Port);
        S = new Socket(ipe.AddressFamily, SocketType.Stream, ProtocolType.Tcp);
        try
        {
            S.Connect(ipe);
        }
        catch (SocketException e)
        {
        }
    }

誰でもこの問題を手伝ってもらえますか? ありがとう。

4

1 に答える 1