我正在尝试向服务器发送消息并获得响应。 当我尝试打开套接字时出现异常:
我已将以下几行添加到 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) {
}
非常感谢您的帮助!
最佳答案
试试这个....
1.如果你想访问这个服务器
with IP: 81.218.150.49 through Internet, then it must
be your static ip, rather than an dynamic one.
2. 尝试使用分配给您 LAN 中的 pc 的私有(private) ip 地址或公共(public) ip 地址运行此代码(即。没有 internet..JUST WIRELESS CONNECTION)
。
<强>3。私有(private) IP 或公共(public) IP 在您连接到 Internet 之前没有任何意义。直到那时您可以将两者用作其 LAN。
4.私有(private) 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。公共(public)由您的服务提供商提供,这将是私有(private) ip 范围之外的任何人。如果您的 ip 不是静态的,则您几乎没有机会或根本没有机会通过 Internet 访问服务器,有些网站会从您的动态 ip 中提供静态 ip。
关于java - 使用 Socket 与服务器通信,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11390738/