【问题标题】:Android Client not able to connect to a serverAndroid客户端无法连接到服务器
【发布时间】:2011-08-23 21:36:33
【问题描述】:

我的计算机上正在运行一个服务器,我希望我的 android 应用程序能够连接到它。换句话说,我想编写一个建立 TCP 连接的 Android 客户端,向服务器写入一些内容并监听来自服务器的响应。下面是客户端代码:

public class Text extends Activity 
{
    @Override
    public void onCreate(Bundle savedInstanceState) 
    {
        String fromServer, ToServer, filename;
        BufferedReader inFromServer;
        PrintWriter outToServer;
        Socket clientSocket;

        super.onCreate(savedInstanceState);

        try 
        {
        clientSocket = new Socket("86.36.32.251", 8000);
        outToServer  = new PrintWriter(clientSocket.getOutputStream(),true);
        inFromServer = new BufferedReader(
                   new InputStreamReader(clientSocket.getInputStream()));

        filename = "profile.txt";
        ToServer = Reader.readFileAsString(filename);
        ToServer += "\n";

        outToServer.println(ToServer);

        while((fromServer = inFromServer.readLine()) != null)
        {
            TextView tv = new TextView(this);
            tv.setText(fromServer);
            setContentView(tv);
        }

        inFromServer.close();
    }
    catch(UnknownHostException e)
    {
        e.printStackTrace();
    }
    catch (IOException e) 
    {
        e.printStackTrace();
    }
}

}

但是,当我运行我的应用程序时,该应用程序没有与我的服务器建立 TCP 连接。我不知道问题可能是什么。我已经浏览了以下链接http://thinkandroid.wordpress.com/2010/03/27/incorporating-socket-programming-into-your-applications/,它讨论了套接字编程的客户端,我觉得我的客户端中有所有主要步骤。有人可以帮我解决这个问题。谢谢

【问题讨论】:

  • 你是用模拟器测试的吗?
  • 您是否在清单文件中添加了android.permission.INTERNET 权限?
  • 当你说“没有建立TCP连接”时,是什么意思?这是否意味着服务器或客户端正在抛出异常?或者,您是说向服务器发送请求后没有得到任何响应?

标签: android sockets client-server


【解决方案1】:

请确保您已添加互联网权限。 如果你这样做了,请在真实设备上运行它。 如果还是不行,贴一下logcat。

【讨论】:

  • 我忘记添加 INTERNET 权限所以我添加了它,但客户端仍然无法建立与服务器的连接。客户端和服务器都不会引发异常。只是服务器,通常打印客户端的IP地址只是连接和处理客户端发送的消息,甚至不打印IP地址。我正在使用 Dev phone 2,android 版本 2.3。这是我运行应用程序时 Eclipse 在控制台上打印的内容:
  • [2011-08-24 10:51:38 - TextApp] ------------------------- -- [2011-08-24 10:51:38 - TextApp] Android 发布! [2011-08-24 10:51:38 - TextApp] adb 运行正常。 [2011-08-24 10:51:38 - TextApp] 执行 com.example.textapp.Text 活动启动 [2011-08-24 10:51:38 - TextApp] 自动目标模式:无法检测设备兼容性。请选择目标设备。
  • [2011-08-24 10:51:41 - TextApp] 警告:应用程序未指定 API 级别要求! [2011-08-24 10:51:41 - TextApp] 设备 API 版本为 10(Android 2.3.4) [2011-08-24 10:51:41 - TextApp] 将 TextApp.apk 上传到设备“HT0C5P800531”[2011 -08-24 10:51:41 - TextApp] 安装 TextApp.apk... [2011-08-24 10:51:43 - TextApp] 成功! [2011-08-24 10:51:43 - TextApp] 在设备 HT0C5P800531 上启动活动 com.example.textapp.Text
  • [2011-08-24 10:51:43 - TextApp] ActivityManager: 开始: Intent { act=android.intent.action.MAIN cat=[android.intent.category.LAUNCHER] cmp= com.example.textapp/.Text }
  • 我是否必须指定最低 API 级别才能运行此应用?
猜你喜欢
  • 2014-11-19
  • 2018-10-14
  • 2013-12-05
  • 2014-05-21
  • 2020-06-17
  • 2014-11-04
  • 1970-01-01
  • 2012-10-15
相关资源
最近更新 更多