将android连接到服务器和ip以及相应端口的最佳方法是什么?这个连接不需要一直都是,但我假设我将发送和重新传输文件(在字节数组或流中)。
谢谢
答案 0 :(得分:7)
由于Android开发工具是Java原生的,因此您可以使用简单的Java Socket API来实现此目标(请参阅ServerSocket和Socket)。
您必须首先在主机上打开ServerSocket
,方法是定义要监听的端口:
ServerSocket ss = new ServerSocket([some_port]);
然后您必须通过致电ss.accept()
开始收听客户。此方法将阻止,直到客户端连接:
Socket my_socket = ss.accept();
您现在在服务器上有一个可以根据需要操作的套接字(可能通过使用ObjectInputStream
和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慢得多,并且不适用于任何类型的快节奏数据密集型游戏,但是应该根据上面的描述实现您的目标。