2

TCPを使用して、クライアント(Windows Phone 8)アプリからWindowsフォームアプリ(サーバーとして機能する)にデータを転送しようとしているサンプルを実行しています。

Windowsフォームアプリでは、このようなリスナーを作成しています

         TcpListener tcpListener = null;

        IPAddress ipAddress = Dns.GetHostEntry("localhost").AddressList[0];
        try
        {
            // Set the listener on the local IP address
            // and specifing the port.
            tcpListener = new TcpListener(ipAddress, 13);
            tcpListener.Start();
            output = "Waiting for a connection...";
        }
        catch (Exception e)
        {
            output = "Error: " + e.ToString();
            MessageBox.Show(output);
        }

        while (true)
        {

            Thread.Sleep(10);
             TcpClient tcpClient = tcpListener.AcceptTcpClient();

            byte[] bytes = new byte[256];

            NetworkStream stream = tcpClient.GetStream();
            stream.Read(bytes, 0, bytes.Length);
          }

Windows Phone 8 アプリでは、マネージ ソケットを使用してリスナーに接続しています。

    public Task SendUsingManagedSocketsAsync(string strServerIP)
    {


        // enable asynchronous task completion
        completionSource = new TaskCompletionSource<object>();
        // create a new socket 
        var socket = new Socket(AddressFamily.InterNetwork,
            SocketType.Stream,
            ProtocolType.Tcp);

        // create endpoint 
        var ipAddress = IPAddress.Parse(strServerIP);
        var endpoint = new IPEndPoint(ipAddress, PORT);

        // create event args 
        var args = new SocketAsyncEventArgs();
        args.RemoteEndPoint = endpoint;
        args.Completed += SocketConnectCompleted;

        // check if the completed event will be raised. If not, invoke the handler manually. 
        if (!socket.ConnectAsync(args))
            SocketConnectCompleted(args.ConnectSocket, args);

        return completionSource.Task;
    }

しかし、接続が拒否されたというソケットエラーが発生しました。私のアプローチは正しいですか、windows phone を介して tcp リスナーを接続する方法..ここでは、リアルタイムでサーバーコードだったので、windows フォームアプリのコードを変更できません..または、サーバーのコードを変更することは必須ですか? ....

4

0 に答える 0