Android套接字连接错误:连接失败:ETIMEDOUT

时间:2015-06-30 14:58:04

标签: java c# android sockets

我正在开发一个Android应用程序,它将使用TCP与wifi控制器(固定IP和PORT)进行通信,但由于我还没有控制器。所以我创建了一个简单的C#服务器程序,它将收到一些测试消息。

但是当我尝试在android中打开连接时,它给了我异常:

java.net.ConnectException: failed to connect to /10.0.2.2 (port 1234): connect failed: ETIMEDOUT (Connection timed out)

C#程序:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net;
using System.Net.Sockets;
namespace Server
{
    class Program
    {
        static byte[] Buffer { get; set; }
        static Socket sck;
        static void Main(string[] args)
        {
            sck = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
            sck.Bind(new IPEndPoint(0, 1234));
            sck.Listen(100);
            Socket accepted = sck.Accept();
            Buffer = new byte[accepted.SendBufferSize];
            int bytesRead = accepted.Receive(Buffer);
            byte[] formatted = new byte[bytesRead];
            for (int i = 0; i < bytesRead; i++)
            {
                formatted[i] = Buffer[i];
            }
            string strData = Encoding.ASCII.GetString(formatted);
            Console.Write(strData + "\r\n");
            Console.Read();
            sck.Close();
            accepted.Close();

        }
    }
}

Android代码:

try 
{

    if (socket == null) {
        int SERVERPORT = 1234;
        InetAddress serverAddr = InetAddress.getByName("10.0.2.2");
        socket = new Socket(serverAddr, SERVERPORT); // FAILS
    }
}
} catch (IOException e) {
    e.printStackTrace();
}

这是我第一次使用套接字。在网络方面,我是DUMB。所以这可能是一个简单的错误。

当然我用这个错误检查了所有相关问题,但仍然无法解决这个问题。

我正在使用GenyMotion模拟器。 使用Windows 8.1 64x。 我设置防火墙设置以允许C#应用程序与Windows防火墙(公共和私有)进行通信。

有谁知道解决方案?感谢

0 个答案:

没有答案