1

将android连接到服务器和ip和相应端口的最佳方法是什么?这种连接不需要一直存在,但我假设我将发送和接收文件(在字节数组或流中)。

谢谢

4

1 回答 1

7

由于 Android 开发工具是 Java 原生的,因此您可以使用简单的 Java Socket API 来实现这一目标(请参阅ServerSocketSocket)。

服务器代码

您必须首先ServerSocket通过定义要侦听的端口在主机上打开 a :

ServerSocket ss = new ServerSocket([some_port]);

然后,您必须通过调用ss.accept(). 此方法将阻塞,直到客户端连接:

Socket my_socket = ss.accept();

现在,您的服务器上有一个套接字,您可以随意操作(可能通过使用ObjectInputStreamand ObjectOutputStream):

ObjectOutputStream out = new ObjectOutputStream(my_socket.getOutputStream());
ObjectInputStream in= new ObjectInputStream(my_socket.getInputStream());

客户代码

您必须与刚刚创建的服务器建立连接。您将通过初始化一个套接字并传入您的服务器的 IP 地址(对于大多数测试目的通常是 localhost)和您的服务器当前正在侦听的端口号来完成此操作:

Socket socket = new Socket("localhost", [some_port]);

同样,建立一些通信流:

ObjectOutputStream out = new ObjectOutputStream(socket.getOutputStream());
ObjectInputStream in = new ObjectInputStream(socket.getInputStream());

你有它!您现在可以轻松地从 Android 设备与服务器通信。它比你想象的要简单得多。

但是请注意,此架构实现了 TCP,它比 UDP 慢得多,并且不适用于任何类型的快节奏数据密集型游戏,但根据上面的描述应该可以实现您的目标。

于 2012-11-06T06:29:10.827 回答