【发布时间】:2012-10-26 01:44:52
【问题描述】:
将android连接到服务器和ip和相应端口的最佳方法是什么?这种连接不需要一直存在,但我假设我将发送和接收文件(在字节数组或流中)。
谢谢
【问题讨论】:
标签: android connection ip
将android连接到服务器和ip和相应端口的最佳方法是什么?这种连接不需要一直存在,但我假设我将发送和接收文件(在字节数组或流中)。
谢谢
【问题讨论】:
标签: android connection ip
由于 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 慢得多,并且不适用于任何类型的快节奏数据密集型游戏,但根据上面的描述,应该可以实现您的目标。
【讨论】: