我对Android中的套接字通信几乎没有疑问.
1)我开发了用于android的服务器套接字应用程序,用于侦听端口8888.
a)当我在模拟器上托管我的服务器时,我无法通过我的PC上的客户端应用程序与它进行通信,因为两个(模拟器和客户端)应用程序都在我的笔记本电脑上并且在同一网络上我认为它们应该是能够相互沟通.
b)当我在我的Android移动设备上部署相同的服务器应用程序并尝试通过我在PC上的相同客户端应用程序进行通信时,客户端应用程序会发出超时异常,因为它无法与之通信.
我的第一个问题是如何使用Emulator&1 android设备测试服务器/客户端套接字应用程序?我甚至可以使用我的PC的客户端套接字应用程序来测试我的服务器套接字吗?
**我的其他应用程序有客户端套接字应用程序,因此客户端应用程序没有问题.
2)我的第二个问题是在Android设备上测试我的服务器应用程序我是否必须转发所需的端口?a)对于仿真器:如何转发端口?b)对于设备:我如何转发端口?c)我可以通过编程方式转发端口吗?
**仅供参考:
我正在使用Eclipse作为android开发工具.
**我的服务器代码,因为我的服务器套接字代码也可能有问题.
Socket socket = null;
DataInputStream dataInputStream = null;
DataOutputStream dataOutputStream = null;
ServerSocket serverSocket = null;
try
{
serverSocket = new ServerSocket(SERVERPORT);
System.out.println("Listening :" + SERVERPORT);
System.out.println("Server IP:" + SERVERIP);
}
catch (Exception e)
{
e.printStackTrace();
}
while(true)
{
try
{
socket = serverSocket.accept();
BufferedReader in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
System.out.println("ip: " + socket.getInetAddress());
String str = in.readLine();
System.out.println("message Received: " + str);
}
catch (Exception e)
{
e.printStackTrace(); …Run Code Online (Sandbox Code Playgroud)