我在同一个局域网下使用Wi-Fi有两个安卓应用程序:
谢谢大家。
- 应用程序(A)在8033端口上打开监听套接字
- 应用程序(B)使用HttpClient访问端口8033上的(A)
谢谢大家。
一种Java EE方式具有HTTP服务器:"Tiny Java Web Server" @http://tjws.sourceforge.net/,它可能对您正在寻找的内容有所帮助
一种Apache方式拥有HTTP服务器http://www.androiddevblog.net/android/a-bare-minimum-web-server-for-android-platform
请参见http://en.wikipedia.org/wiki/OSI_model#Layer_3:_Network_Layer以获得这些通信层的更完整视图。
请查看在Github上提供的AndServer项目。它是一个适用于Android平台的Web服务器和Web框架。它提供了类似于SpringMVC的注释。
@RestController
@RequestMapping(path = "/user")
public class UserController {
@PostMapping("/login")
public String login(@RequestParam("account") String account,
@RequestParam("password") String password) {
...
return "Successful.";
}
@GetMapping(path = "/{userId}")
public User info(@PathVariable("userId") String userId,
@QueryParam("fields") String fields) {
User user = findUserById(userId, fields);
...
return user;
}
@PutMapping(path = "/{userId}")
public void modify(@PathVariable("userId") String userId
@RequestParam("age") int age) {
...
}
}
简单部署
Server server = AndServer.webServer(context)
.port(8080)
.timeout(10, TimeUnit.SECONDS)
.build();
// startup the server.
server.startup();
...
// shutdown the server.
server.shutdown();
仅监听一个端口并接受套接字连接是不足以将数据返回给HttpClient的。 套接字实际上提供了一个物理管道,但对于沿着该管道流动的数据格式一无所知。 如果您打算使用HttpClient,则需要让服务器应用程序了解HTTP协议(或至少了解其基本子集)。
如果您只需要两个进程以某种方式通信,那么最好让服务器应用程序成为服务,然后让客户端应用程序查询此服务以获取所需数据。