2

我正在尝试向服务器发送消息并获得响应。当我尝试打开套接字时,出现异常:

我在 AndroidManifest.xml 中添加了以下几行:

< uses-permission android:name="android.permission.INTERNET" /> 
< uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" /> 

在应用程序标签之前。
这是我的代码:

                String IP = "81.218.150.49";
                int port = 32001;
                Socket my_socket = new Socket(IP, port); //Here i get exception !!

                BufferedWriter wr = new BufferedWriter(new OutputStreamWriter(my_socket.getOutputStream(), "UTF8"));
                wr.write("mobiwize server login test testpswd\r\n");

                // Send data
                wr.flush();

                // Get response
                StringBuffer sb = new StringBuffer("");
                BufferedReader rd = new BufferedReader(new InputStreamReader(my_socket.getInputStream()));
                String line ="";
                String NL = System.getProperty("line.separator");
                while ((line = rd.readLine()) != null) {
                    sb.append(line + NL);
                }
                httpStuff.setText(sb);

                rd.close();
                wr.close();
            } catch (Exception e) {
            }

我真的很感谢您的帮助!

4

3 回答 3

1

尝试这个....

1.如果你想访问这个服务器

with IP: 81.218.150.49 through Internet, then it must
   be your static ip, rather than an dynamic one.

2.尝试使用分配给局域网中您的PC的私有IP地址或公共IP地址运行此代码(即Without internet..JUST WITH WIRELESS CONNECTION)..

3. 私有 IP 或公共 IP 没有任何意义,直到你在互联网上.. 直到你可以同时使用它们,因为它的 LAN。

4.私有IP范围

A 类:10.0.0.0 - 10.0.0.255 B 类:172.16.0.0 - 172.31.255.255 C 类:192.168.0.0 - 192.168.255.255

5. 公共是由您的服务提供商提供的,它将是私有 IP 范围之外的任何人。如果您的 ip 不是静态的,那么您几乎没有机会通过 Internet 访问服务器,有些网站会从您的动态 ips 中提供静态 ip。

于 2012-07-09T10:13:18.000 回答
0

我在 Android 中使用时遇到了同样的问题,而它在 J2ee Java 程序中运行良好,我建议你对这个新的套接字事物使用方法调用,使用相同的代码。希望它会有所帮助,因为它对我做了..

于 2012-07-09T07:39:46.340 回答
0

我怀疑你有安全错误。您列出的 IP 地址不允许您进行套接字连接。尝试另一个您知道您的计算机可以与之建立连接的 IP。使用 FTP、rlogin 或其他工具测试 IP 的安全性。

我假设您不是想破解某人的 PC 或 iMac :-)

于 2012-07-09T07:52:39.493 回答