新网创想网站建设,新征程启航
为企业提供网站建设、域名注册、服务器等服务
Android是基于Linux开发的系统,所以它可以使用MySQL数据库标准运行完整的Web服务器功能,便毫不奇怪了。服务器而已支持PHP和FTP传输,你甚至可以将其放到互联网上。对于开发人员来说,可以使用这项功能来测试代码,然后为客户演示,或者是作为自己博客的服务器使用。除了手机,你还可以将低价的Android迷你电脑作为廉价服务器使用。
创新互联-专业网站定制、快速模板网站建设、高性价比铁力网站开发、企业建站全套包干低至880元,成熟完善的模板库,直接使用。一站式铁力网站制作公司更省心,省钱,快速模板网站建设找我们,业务覆盖铁力地区。费用合理售后完善,十多年实体公司更值得信赖。
跟服务器传数据的话,一般都是采用 RESTful API 来传输。这样首先要对 HTTP 协议有初步的理解,至少知道 GET / POST 分别是干嘛的有什么区别。然后就是实现问题。可以学习一些网络框架的使用,如 volley 等等。
服务器跟硬件通信的话属于嵌入式领域,不知道题主是否学过单片机相关。反正这部分应该不属于 Android 领域。
一般两种方式TCP和HTTP。TCP的学习Socket,HTTP的话熟悉一下HTTP协议和相关Java API。
工具/原料
root软件:百度root为佳!如果你已经获取了权限,可以跳过。
ksweb软件:用于搭建手机php服务器的软件。
nat123软件:强大的内网端口映射软件,不需要路由器权限。
方法/步骤
1.安装手机本地php+mysql服务器环境篇 :
1.1安装ksweb软件,安装好ksweb后,会在手机上生成一个文件夹htdocs,其目录是mnt/sdcard/htdocs,htdocs是网站的根目录。
1.2安装mysql 直接点击mysql管理,点击选择“是”然后解压便可自动安装。mysql的账号密码随后再改(在设置里面更改)。
1.3安装好MySQL之后,我们需要对ksweb进行一些设置方可更好使用。
1.3.1端口的更改步骤:(启用root→更改80端口)手机服务器启用root,在ksweb设置里面把root打钩。
1.3.2开启手机80端口方法:把8080端口改为80端口,并把PHP服务,MySQL都打勾。其他一些设置比如MySQL密码,开机自启动等选项大家根据需要自行修改即可!
1.4ksweb全部设置好后,我们打开手机本地服务器地址localhost:80,表示设置好了。
我们点击页面中的“Enter KSWEB Web Interface”可以看到手机服务器的一些配置信息(默认账号密码都是“admin”),表示手机服务搭建成功,一切正常!
2.利用nat123软件进行内网80端口映射篇:
2.1注册账号,我们先到其官网注册账号官网,大家百度nat123即可。
2.2登陆并添加域名解析。
2.2.1 应用名称,要搭建自己的博客,可以填XX的博客,或者XX的个人博客等。
2.2.2 内网端口,只有root的手机才填80端口。
2.2.3 内网地址这个默认localhost就行。
2.2.4 外网域名,如果没有自己的域名,可以用官方免费的二级域名,注意格式,一切填好之后,点击确认保存即可!
2.3 下载并安装登陆安卓版的nat123,就自动解析了。
3.4 接下来在另一台电脑上输入刚才的域名访问,表示安卓手机web服务器安装成功,网站搭建成功!
注意事项
另外如果需要手机网站一直都可以访问,需要下载一个永不关屏软件,这样手机就不会进入睡眠状态,服务也不会停止,不过比较耗电。
外网能访问内网手机web服务器的关键是nat123端口映射功能,利用nat123端口映射功能,不只是搭建内网网站,还可以挖掘其他的许多用途。
你说的这个用手机建站功能可以实现,我做过这个,把手机变成文件服务器,支持http协议,客户手机不需要安装任何软件,打开浏览器扫二维码就可以进行下载,当然了,我建站是要按页面收费的
android作为服务器端,就是可以使用mina:
public class TcpServer {
public static void main(String[] args) {
NioSocketAcceptor acceptor = new NioSocketAcceptor();
try {
acceptor.setHandler(new IoHandler() {
@Override
public void sessionOpened(IoSession session) throws Exception {
// TODO Auto-generated method stub
// iosession 客户端的session
System.out.println("open");
}
@Override
public void sessionIdle(IoSession arg0, IdleStatus arg1)
throws Exception {
// TODO Auto-generated method stub
}
@Override
public void sessionCreated(IoSession arg0) throws Exception {
// TODO Auto-generated method stub
System.out.println("create");
}
@Override
public void sessionClosed(IoSession arg0) throws Exception {
// TODO Auto-generated method stub
System.out.println("close");
}
@Override
public void messageSent(IoSession arg0, Object arg1)
throws Exception {
// TODO Auto-generated method stub
}
@Override
public void messageReceived(IoSession session, Object content)
throws Exception {
// TODO Auto-generated method stub
System.out.println("object : " + content);
}
@Override
public void exceptionCaught(IoSession arg0, Throwable arg1)
throws Exception {
// TODO Auto-generated method stub
}
});
DefaultIoFilterChainBuilder chain = acceptor.getFilterChain();
chain.addLast("logger", new LoggingFilter());
chain.addLast("codec", new ProtocolCodecFilter(
new TextLineCodecFactory(Charset.forName("utf-8"))));
acceptor.bind(new InetSocketAddress(10003));
} catch (IOException e) {
e.printStackTrace();
}
}
}
可以的,用java.net.ServerSocket建立一个就行了。如果想做http服务器,就在Socket Server的基础上解析请求中的Http头和body即可。
另外,Jetty好像有Android版。