Android连接到服务器IP和端口

Way*_*int 1 connection ip android

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

谢谢

Squ*_*gem 7

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

服务器代码

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

ServerSocket ss = new ServerSocket([some_port]);
Run Code Online (Sandbox Code Playgroud)

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

Socket my_socket = ss.accept();
Run Code Online (Sandbox Code Playgroud)

您现在在服务器上有一个可以根据需要操作的套接字(可能通过使用ObjectInputStreamObjectOutputStream):

ObjectOutputStream out = new ObjectOutputStream(my_socket.getOutputStream());
ObjectInputStream in= new ObjectInputStream(my_socket.getInputStream());
Run Code Online (Sandbox Code Playgroud)

客户代码

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

Socket socket = new Socket("localhost", [some_port]);
Run Code Online (Sandbox Code Playgroud)

再次,建立一些沟通流:

ObjectOutputStream out = new ObjectOutputStream(socket.getOutputStream());
ObjectInputStream in = new ObjectInputStream(socket.getInputStream());
Run Code Online (Sandbox Code Playgroud)

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

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