精华内容
下载资源
问答
  • AndServer初探

    万次阅读 2019-01-04 17:21:25
    AndServer初探 详细了解请戳这里 AndServer的github地址【https://github.com/yanzhenjie/AndServerAndServer文档地址【https://www.yanzhenjie.com/AndServer/】 AndServer的相关博客地址...

    AndServer初探

    详细了解请戳这里

    一度为快

    特殊的需求

    • 需求
      • 是否让Android应用成为一台服务器
    • 好处
      • 如果一个应用是Android应用,假设这时候需要外部有个服务来控制这台设备的某些内容或数据的传输,这时候如果用服务器来作为媒介和数据交换中心,不是不可以,这样做的话带来的问题是数据的延迟性和成本的代价;假设不通过第三方的服务器直接和Android应用直接通讯,这样不仅可以减少数据传输中时间,还可以减少开发的复杂度,最终的目的是尽可能快的进行数据的交换,完成两个应用的交互
    • Android上使用什么来完成Http服务器
      • ApacheHttpCore是一个优秀的Http底层框架,支持构建服务器,也支持构建客户端(有的Android版本弃用了ApacheHttpClient相关的API,用的话记得进行引用)

    AndServer是什么

    • AndServer是Android平台的Web Server和Web FrameWork,它基于编译时注解提供了类似Spring注解和功能,通过给类和方法加上合适的注解,使得这些方法可以以接口的形式暴露给http请求者。

    AndServer的特性

    • 使用注解开发接口
    • 全局使用请求拦截器,可以使用注解,全局多个
    • 全局异常处理器,可以使用注解,全局唯一
    • 全局消息转换器,可以使用注解,全局唯一

    AndServer的架构

    • Linux Kernel(linux核心) -> Socket(长连接) -> HttpParser(Http解析) -> FrameWork(框架) -> Handler(处理机)

    Android的应用架构

    • Dispatcher(分发器) -> Interceptor(拦截器) -> HanderAdapter(处理适配器) -> Handler(处理机) -> ViewReslover(视图解析器)

    注解

    注解 用途
    Controller 控制器,给类进行注解

    如果需要要返回指定的页面,则需要Controller配合视图解析器InternalResourceViewResolver才行,如果需要返回json、xml或自定义mediaType内容到页面,则需要在对应的方法上加@ResponseBody注解
    RestController 控制器,给类进行注解

    RestController注解相当于是@Controller+@ResponseBody注解的结合

    如果只使用RestController注解,则该类的方法中无法返回jsp页面(或者是html),配置视图解析器InternalResourceViewResolver不起作用,返回的内容就是return的内容
    RequestMapping 可以用在类上,也可以用在方法上

    注意:使用时所在类必须有Controller或者是RestController方法才有意义

    RequestMapping可以规定接口的请求路径、请求方法、参数校验、请求头校验、Accept和ContentType等重要规则
    RequestParam 只能用在方法参数上,用来获取客户端传来的参数
    PathVariable 只能用在方法参数上,用来获取客户端的path参数
    QueryParam 只能用在方法参数上,不支持MultipartFile,仅用来获取Url中的参数
    FormPart 只能用在方法参数上,仅用在获取Form中的参数
    ResponseBody 注解ResponseBody使用在Controller注解类下的方法上,相当于使用了注解RestController给类一样,直接将返回值作为响应发送给客户端
    RequestBody 客户端可以把一段json或者一个文本整体写到请求的Body中发送给服务端,服务端的处理方式有两种,第一种是拿到RequestBody对象,由开 发者自行转换为目标对象,第二种是使用RequestBody注解结合MessageConverter自动转化为目标对象
    CookieValue 方便获取客户端提交的Cookie的值
    RequestHeader 方便获取客户端的Header值
    Addition 用在方法上,增加一些额外的信息,方便在HandlerInterceptor(拦截器)中处理一些业务,例如标记方法登录后才可以访问@Addition(“needlogin”)
    Interceptor Interceptor是拦截器的意思标记某个类是HandlerIntercept的子类,并且作为拦截器参与;可以添加多个类,所有添加了Interceptor注解的类都将参与程序运行
    Converter Converter是转换器的意思,标记某个类是MessageConverter的子类,并作为消息转换器参与;可以添加多个类,但是只有其中一个参与运行,先扫描到哪个就先执行哪个,因此最好是一个类添加Converter注解
    Resolver Resolver是解决者的意思,用来标记某个类是ExceptionResolver的子类,并作为异常解决者参与;Resolver可以添加多个类,但是只有其中一个添加了Resolver注解类参与程序运行,看哪个先被扫描到就先执行哪个,建议只添加一个Resolver注解
    WebSite 用来标记某个类是WebSite的子类,并作为静态网站参与;WebSite可以注解多个类,所有添加了WebSite注解的类都将参与程序的运行

    类和接口

    名称 用途
    MultipartFile 表示客户端表单中上传的文件
    MessageConverter MessageConverter需要结合Converter注解进行使用,首先要一个类实现MessageConverter接口,然后在该类上加上Converter注解即可使用,不需要其它的配置
    HandlerInterceptor 用来拦截客户端对服务端所有的接口的请求,如果是不存在的接口HandlerInterceptor是不会进行处理的,HandlerInterceptor需要结合Interceptor注解使用,首先一个类实现HandlerIterator接口,然后在该类上加上Interceptor注解即可使用,不需要其它配置
    ExceptionResolver 用来处理发生的异常,默认情况下会输出异常到Message到客户端,ExceptionResolver需要结合Resolver注解使用,首先要一个类实现ExceptionResolver接口,然后在该类上加上Resolver注解即可使用,不需要其它的配置
    ResponseBody ResponseBody是响应包,Controller和RestController中的方法返回值最终都会被转化为ResponseBody发送
    RequestBody 客户端可以把一段json或者一个文件整体写到请求的Body中发送给服务端,服务端处理的方式有两种,第一种是使用RequestBody自动转化为目标对象,第二种拿到RequestBody,由开发者转化为目标对象;因此RequestBody最终呈现的形式是通过流,所以客户端可以把任何内容放到RequestBody的请求包中发送到服务器端,服务端可以把RequestBody再转为任何自己想要的数据类型
    Cookie Cookie可以用来辨别用户的身份,一般会加密后发送给客户端,客户端会保存在磁盘上
    Addition Addition类的属性对应的是Addition注解的参数;它和Interceptor配合来进行使用

    网站

    名称 用途
    AssetsWebsite Website需要结合Website注解使用,首先需要一个类继承Website类,然后在该类上加上Website注解即可使用,不需要其他配置
    StorageWebsite Website需要结合Website注解使用,首先需要一个类继承Website类,然后在该类上加上Website注解即可使用,不需要其他配置
    FileBrowser FileBrowser可以以列表的形式展开开发者指定目录的文件和目录,并可以点击下载列表中的文件和查看列表中的目录和内容

    缓存

    名称 用途
    ETag 被添加了Controller注解或者RestController注解的类实现
    LastModified 被添加了Controller注解或者RestController注解的类实现。
    展开全文
  • AndServer搭建手机服务器以及跨域问题解决AndServer官方文档地址AndServer简介什么情况需要用? AndServer官方文档地址 https://yanzhenjie.com/AndServer/ AndServer简介 AndServer是Android平台的Web Server和...

    用AndServer搭建手机服务器以及跨域问题解决

    AndServer官方文档地址

    https://yanzhenjie.com/AndServer/

    AndServer简介

    AndServer是Android平台的Web Server和Web Framework。 它基于编译时注解提供了类似SpringMVC的注解和功能,如果您熟悉SpringMVC,则可以非常快速地掌握它。
    AndServer是国人yanzhenjie开发部署在手机上的服务器框架
    相关博客 https://blog.csdn.net/yanzhenjie1003

    什么情况需要用?

    个人感觉用手机做服务器比较low,一般都是用web做服务端,但难免会出现些特殊情况所以有这种框架还是挺方便便捷的,直接交代码吧
    首先在安卓gradle里引入依赖包

    dependencies {
        implementation 'com.yanzhenjie.andserver:api:{version}'
        annotationProcessor 'com.yanzhenjie.andserver:processor:{version}'
    }
    

    如果版本更新就看官方文档里的依赖 我写这篇博客时上面这个依赖是最新的
    如果你会spring的话那么AndServer所谓开箱即用
    下面我贴上接口代码
    这是我做的一个接口代码

    @RestController
    public class UserController {
     @RequestMapping("/wlogin")
            public String login(@RequestParam("name") String name, @RequestParam("psw") String psw, HttpRequest request) {  //登陆接口
                List<Users> usersList = Users.find(Users.class, "name = ? AND password = ?",
                        name, psw);
                if (!usersList.isEmpty()){
                    String callbackFuncation =  request.getParameter("callback");
                    return callbackFuncation+"(1)"; //登录成功
                }
                else{
                    String callbackFuncation =  request.getParameter("callback");
                    return callbackFuncation+"(0)"; //登录失败
                }
            }
                }
    

    如果是传输list数据就用需要用到alibaba的fastJSON来做数据传输

          @RequestMapping("/getUser")
        public String getUser(@RequestParam("name") String name, @RequestParam("psw") String psw, HttpRequest request)//获取个人用户信息
            {
                List<Users> usersList = Users.find(Users.class, "name = ? AND password = ?",
                        name, psw);
                if (!usersList.isEmpty()){
                    String callbackFuncation =  request.getParameter("callback");
    //                return callbackFuncation+"({'name':'"+usersList.get(0).getName()+",'birth':"+usersList.get(0).getBirth()+",'sex':"+usersList.get(0).getSex()+",'phone':"+usersList.get(0).getPhone()+"})"; //获取成功
               return callbackFuncation+"("+JSON.toJSON(usersList.get(0))+")";
                }
                else{
                    String callbackFuncation =  request.getParameter("callback");
                    return callbackFuncation+"(0)"; ///获取失败
                }
            }
    

    这里我把依赖贴进来

     implementation 'com.alibaba:fastjson:1.1.70.android' //引入阿里巴巴的fastjson库
        implementation 'com.alibaba:fastjson:1.2.55'
    

    弄好了之后安卓这边就算差不多了接下来我们看web 这边使用ajax请求到安卓端的数据

    	function Userlogin(){
    		var name=$('#exampleInputEmail1');
    		var psw=$('#exampleInputPassword1');
    		$.ajax({
    		url:"http://10.22.12.1:8080/wlogin",
    		type:"get",
    		dataType:"jsonp",
    		jsonp:"callback",
            jsonpCallback: 'handleResponse', //设置回调函数名
    		timeout: 5000,
    		data:{
    			"name":name.val(),
    			"psw":psw.val()
    		},
    		success:function(result){
    			if(result=="1"){
    				alert("登录成功");
    				 localStorage.setItem('name',name.val());//存储key为name的数据data
    				 localStorage.setItem('psw',psw.val());//存储key为name的数据data
    				window.location.href="main.html";
    			}else{
    				alert("密码错误");
    			}	
    		},
    		error:function(result){
    			// var jsonData = JSON.stringify(result);// 转成JSON格式
    				alert("服务器未开启");
    		}
    		});
    	}
    </script>
    

    因为使用到跨域所以不用json 传输 使用的是jsonp来传输数据
    还有其他关于跨域的我就暂时没写了可以自行百度
    关于web和android传输数据的那个表头callback最好是要一致的不过我这里是用安卓使用了get到了再赋值给String
    最后
    在安卓端设置一个服务器用java获取到本机服务器地址
    然后在url上面换成自己的地址就可以了

    ServerManager.startServer()
    
    NetWorkUtil.getHostIp()
    

    使用getHostIp显示出服务器地址就可以看到了

    开启服务器就OK啦

    源码地址等会会贴出来

    展开全文
  • AndServer,一个Android端的web服务器

    万次阅读 多人点赞 2017-03-20 06:34:26
    AndServer是一个Android端的Web服务器,类似Apache或者Tomcat,它是一个普通的Android Library,Android项目Gradle远程依赖或者添加Jar包皆可引入即可进行开发。

    版权声明:转载必须注明本文转自严振杰的博客:http://blog.yanzhenjie.com

    Features Image

    大家好,今天跟大家介绍一个让原生Android也可以做Web开发的开源项目——AndServer

    开源地址:https://github.com/yanzhenjie/AndServer

    AndServer是一个Android端的Web服务器,类似Apache或者Tomcat,但又有不同,它是一个普通的Android Library,Android项目Gradle远程依赖或者添加Jar包皆可引入该项目,然后就通过正常Android开发一样开发App了。

    AndServer是用纯Android API写一个库,所以不用任何第三方的库或者什么硬件编译,打成Jar包后仅仅580kb。

    很多人看到这里就有疑问了:它的使用场景是什么?按照国际惯例,我举个栗子:

    某公司公开了一款TV APP,可以安装在电视或者盒子上,有一个功能是这样的:
    APP安装在电视上打开后,会生成一个唯一ID,用户用微信扫码通过公司提供的公众号和该电视上的该APP绑定,用户通过公众号打开一个H5页面,这个页面可以上传图片或者视频到服务器,服务器检测到该用户和某个屏幕的APP绑定,动态把用户发送的图片或者视频发送到电视播放。
    这样一个功能是很好的体验,但是耗费服务器资源、远端上传、远端下载也都需要时间,还不如我直接用U盘拷贝到电视呢。那么如果我通过网页在局域网直接把视频或者图片发送到电视上的APP播放,岂不是更加直接快捷?

    当然大部分同学可能很少接触到APP之间互相在局域网通信、局域网上传下载、局域网登录这样的需求,还有很多栗子我就不举了,下面开始正式安利。


    特点

    1. 接受客户端文件上传、下载文件。
    2. 动态Http API,就像Java的Servlet一样写接口。
    3. 部署静态网站,例如纯Html,支持JS、CSS、Image分离。
    4. 部署动态网站,例如Html表单,当然可以结合上面的Android Http接口。

    基本上和Java的Servlet一样的功能,如果你做过Java开发或者其它语言的Web开发应该就很熟悉了。

    依赖

    • Gradle
    compile 'com.yanzhenjie:andserver:1.0.2'
    • Maven
    <dependency>
      <groupId>com.yanzhenjie</groupId>
      <artifactId>andserver</artifactId>
      <version>1.0.2</version>
      <type>pom</type>
    </dependency>
    • ADT,可以去AndServer主页下载Jar包。

    使用方法

    最好的教程是sample,建议到AndServer主页下载sample运行查看效果,然后结合README就更加清晰了。

    创建服务器

    AndServer andServer = new AndServer.Build()
        ...
        .build();
    
    // 创建服务器。
    Server mServer = andServer.createServer();
    ...
    
    // 启动服务器。
    mServer.start();
    ...
    
    // 停止服务器。
    mServer.stop();
    ...
    
    // 服务器正在运行吗?
    boolean running = mServer.isRunning();

    端口号和响应超时设置

    AndServer andServer = new AndServer.Build()
        .port(8080) // 默认是8080,Android平台允许的端口号都可以。
        .timeout(10 * 1000) // 默认10 * 1000毫秒。
        ...
        .build();
    ...

    部署网站

    部署网站是通过Website接口,你也可以自己实现这个接口,当然AndServer已经提供了两个默认实现:

    如果用上面两个实现注册你的网站,那么你的默认首页(index.html)是:

    http://ip:port/
    http://ip:port/youPath
    http://ip:port/youPath/index.html

    注册网站到AndServer

    Wesite wesite = new AssetsWebsite(AssetManager, youPath);
    // 或者
    Wesite wesite = new StorageWebsite(youPath);
    
    AndServer andServer = new AndServer.Build()
        ...
        .website(wesite);
        .build();

    AssetsWebsite的使用

    如果你的网站在assets下,那么你就用AssetsWebsite来部署你的网站。

    使用方法是:

    //AssetManager不能被关闭。
    AssetManager mAssetManager = getAssets();
    
    Wesite wesite = new AssetsWebsite(mAssetManager, youPath);

    上面我们看到new AssetsWebsite时需要传一个AssetManager和一个path,path支持assets根目录和子目录,下面是这两种情况的举例。

    • 如果你的网站在assets根目录下, 你的path就填"",比如:

    Assets根目录

    Wesite wesite = new AssetsWebsite(mAssetManager, "");

    那么你的默认首页访问地址就是:

    http://ip:port
    http://ip:port/index.html

    那么你的其它页面访问地址是:

    http://ip:port/login.html
    http://ip:port/error.html

    比如:

    http://192.168.1.12:8080/index.html  
    http://192.168.1.12:8080/login.html
    • 如果你的网站根目录在assets的子目录下,那么你传入assets的相对目录地址就好了比如你的网站在assetsweb目录,例如:

    Assets子目录

    Wesite wesite = new AssetsWebsite(mAssetManager, "web");

    那么你的默认首页访问地址就是:

    http://ip:port
    http://ip:port/web
    http://ip:port/web/index.html

    那么你的其它页面访问地址是:

    http://ip:port/web/login.html 
    http://ip:port/web/error.html

    例如:

    http://192.168.1.12:8080/
    http://192.168.1.12:8080/index.html
    http://192.168.1.12:8080/web/index.html
    http://192.168.1.12:8080/web/index.html  
    http://192.168.1.12:8080/web/login.html

    StorageWebsite的使用

    如果你的网站在内存设备下,只要以文件的形式可以读取到,那么你就用StorageWebsite来部署你的网站,比如你的网站在SD卡下时。

    使用方法是:

    Wesite wesite = new StorageWebsite(youPath);

    它很简单,只要传入你的网站的存储目录地址即可,例如你的网站在SD卡下的www目录:

    File file = new File(Environment.getExternalStorageDirectory(), "www");
    String websiteDirectory = file.getAbsolutePath();
    
    Wesite wesite = new StorageWebsite(websiteDirectory);

    访问地址和AssetsWebsite的道理相同。

    像Servlet一样写Http接口

    Http API是通过RequestHandler接口来注册的,它是一个java interface,它和JavaServlet一样。

    你需要实现这个接口,然后在AndServer注册即可,例如:

    public class RequestLoginHandler implements RequestHandler {
    
        @Override
        public void handle(HttpRequest req, HttpResponse res, HttpContext con) {
            Map<String, String> params = HttpRequestParser.parse(request);
    
            // Request params.        
            String userName = params.get("username");
            String password = params.get("password");
    
            if ("123".equals(userName) && "123".equals(password)) {
                StringEntity stringEntity = new StringEntity("Login Succeed", "utf-8");
                response.setEntity(stringEntity);
            } else {
                StringEntity stringEntity = new StringEntity("Login Failed", "utf-8");
                response.setEntity(stringEntity);
            }
        }
    }

    然后在AndServer中注册:

    AndServer andServer = new AndServer.Build()
        ...
        .registerHandler("login", new RequestLoginHandler())
        .build();

    现在你就得到了一个唯一的访问地址:http://ip:port/login, 例如:

    http://192.168.1.12:8080/login?username=123&password=123

    文件下载和文件上传的例子请下载sample查看。

    提交Html表单到Android端

    Htmlformaction中填入你注册RequestHandler时的key就可以了,然后在RequestHandler

    handle(HttpRequest, HttpResponse, HttpContext)

    方法就可以获取form提交的参数了。

    比如我们上面注册Login RequestHandlerform中这样使用:

    <form id="form1" method="post" action="login">
    ...
    </form>

    监听服务器的状态

    服务器一般情况下有三种状态:成功启动、启动时失败、成功停止服务器,失败时会返回一个异常,一般情况下是网络问题或者端口被占用。

    private Server.Listener mListener = new Server.Listener() {
        @Override
        public void onStarted() {
            // 服务器启动成功.
        }
    
        @Override
        public void onStopped() {
            // 服务器停止了,一般是开发者调用server.stop()才会停止。
        }
    
        @Override
        public void onError(Exception e) {
            // 服务器启动发生错误,一般是端口被占用。
        }
    };
    
    AndServer andServer = new AndServer.Build()
        ...
        .listener(mListener)
        .build();

    如果你觉得还不错,请关注我的微信公众号吧
    严振杰


    版权声明:转载必须注明本文转自严振杰的博客:http://blog.yanzhenjie.com

    展开全文
  •   在手机上有一个功能,但是需要使用电脑控制什么时候开始这个功能,然后上网搜索,找到了AndServer可以满足要求,我只是实现了简单的功能,如果感兴趣的话,可以深入的研究一下。 地址如下:...

    文章目录

    效果

    在这里插入图片描述

    需求

      在手机上有一个功能,但是需要使用电脑控制什么时候开始这个功能,然后上网搜索,找到了AndServer可以满足要求,我只是实现了简单的功能,如果感兴趣的话,可以深入的研究一下。

    地址如下:https://github.com/yanzhenjie/AndServer

    步骤
    1. 引入
    implementation 'com.yanzhenjie:andserver:1.0.2'
    
    1. 申请权限
    <uses-permission android:name="android.permission.INTERNET" />
    
    1. 初始化server
        private void initServer() {
            AssetManager assetManager = getAssets();
            WebSite webSite = new AssetsWebsite(assetManager, "");
    
            AndServer andServer = new AndServer.Build()
                    .website(webSite)
                    .timeout(30 * 1000)
                    .port(1234)
                    .registerHandler("login", new loginRequest())
                    .registerHandler("search",new searchRequest())
                    .listener(mListener)
                    .build();
            server = andServer.createServer();
            server.start();
        }
    
    1. 主要代码
        /**
         * 监听事件
         */
        private Server.Listener mListener = new Server.Listener() {
    
            @Override
            public void onStarted() {
                Log.e(TAG, "onStarted: ");
                tvTips.setText("服务启动成功");
            }
    
            @Override
            public void onStopped() {
                Log.e(TAG, "onStopped: ");
            }
    
            @Override
            public void onError(Exception e) {
                Log.e(TAG, "onError: " + e.getMessage());
                tvTips.setText("服务启动失败:"+e.getMessage());
            }
        };
    
    
        public class searchRequest implements RequestHandler{
            @Override
            public void handle(HttpRequest request, HttpResponse response, HttpContext context) throws HttpException, IOException {
    
               runOnUiThread(new Runnable() {
                   @Override
                   public void run() {
                       Toast.makeText(MainActivity.this, "拍照", Toast.LENGTH_SHORT).show();
                   }
               });
                StringEntity stringEntity = new StringEntity("拍照", "utf-8");
                response.setEntity(stringEntity);
    
            }
        }
    
        public class loginRequest implements RequestHandler {
    
            @Override
            public void handle(HttpRequest request, HttpResponse response, HttpContext context) throws HttpException, IOException {
    
                Map<String, String> params = HttpRequestParser.parse(request);
    
                // Request params.
                final String userName = params.get("name");
                final String password = params.get("pwd");
                //中文需要解码
                final String userName1 = Uri.decode(userName);
                final String password1 = Uri.decode(password);
                Log.e(TAG, "handle: " + userName);
                runOnUiThread(new Runnable() {
                    @Override
                    public void run() {
                        tvUsername.setText(userName1);
                        tvPwd.setText(password1);
                    }
                });
                StringBuilder sb = new StringBuilder();
                sb.append("用户名:" + userName1);
                sb.append("\n");
                sb.append("密码:" + password1);
                StringEntity stringEntity = new StringEntity(sb.toString(), "utf-8");
                response.setEntity(stringEntity);
            }
        }
    
    
    展开全文
  • AndServer搭建服务的用法

    千次阅读 2019-08-28 15:36:28
    0x00 需求 搭建一个加密的服务:其他APK的加密服务即与其通讯。 ...andserver搭建方法: 1.搭建本地server import android.conten...
  • Server Push and Server Sockets

    千次阅读 2004-12-12 19:02:00
    Server Push and Server Sockets来自:http://www.xulplanet.com/tutorials/mozsdk/serverpush.phpThis section will describe how to send data to Mozilla from other sources. Server PushThe term server
  • 结合AndServer实现接口开发 Gradle引入依赖 1 2 3 implementation'com.yanzhenjie.andserver:api:2.0.5' annotationProcessor'com.yanzhenjie.andserver:processor:2.0.5' ...
  • Perl socket client and server

    千次阅读 2010-12-21 16:59:00
    Perl socket client and server
  • (4.2.47)AndServer手机服务器

    千次阅读 2018-04-26 19:46:39
    一、概述 ...3.1 AndServer 3.2 Server 3.3 Core 3.3.1 持有变量 3.3.2 启动 3.3.3 停止与判断 3.4 DispatchRequestHandler请求分发器 3.4.1 持有变量 3.4.2 核心分发功能 四、RequestHandle...
  • AndServer2.0+加载Assets中静态网页

    千次阅读 2019-04-30 14:45:57
    AndServer2.0以后采用注解的方式加载 @Controller public class PageController { @GetMapping(path = "/") public String index() { // Equivalent to [return "/index"]. return "forward:/index....
  • 问题现象 HDFS Client访问Server出现...Caused by: javax.security.sasl.SaslException: No common protection layer between client and server at com.sun.security.sasl.gsskerb.GssKrb5Client.doFinalHands
  • 最初映入脑海的就是Socket原生编程了,直到后来发现了封装成http服务器端的AndServer框架!!! 导入依赖 implementation 'com.yanzhenjie.andserver:api:2.0.5' annotationProcessor 'com.ya...
  • This section contains the complete source code for the TCP/IP Client and Server applications: Complete Winsock Client Code Complete Winsock Server Code The server application should be started
  • 使用AndServer在Android上搭建Web服务器

    万次阅读 2017-04-01 11:23:49
    AndServer是一个Android的Web服务器, 支持部署动态网站和静态网站, 支持写Http接口,和Java的Servlet一样。 特点:  部署动态网站。  部署静态网站。 动态Http API,就是我们通常说的服务器接口。 接受客户端文件...
  • Loading local data is ... this must be enabled on both the client and server sides 解决办法: 1 登录mysql时: mysql --local-infile=1 -uroot -p 2 设置客户端加载功能: set global local_infile = 1;
  • Upgrade from Ubuntu ... to Ubuntu 16.04 on Desktop and Server Editions Ubuntu 16.04 (Xerial Xerus) Long Term Support has been officially released and many users are already e
  • The client and server cannot communicate, because they do not possess a common algorithm This was resolved. It turns out our IT Staff was correct. Both TLS 1.1 and TLS 1.2 were installed on the serve...
  • since I just updated docker to 1.1.0 I get...Error response from daemon: client and server don't have same version (client : 1.13, server: 1.12) do you know how to fix this? I switched back to 1.0....
  • Net 4.5 WebSocket 在 Windows 7, Windows 8 and Server 2012上的比较以及问题 Net 4.5 WebSocket在Windows 8, Windows 10, Windows Server 2012可以,但是在Windows 7, 就会报错。 错误1、“一个文件正在...
  • Android上的Server——AndServer的使用

    千次阅读 2019-07-05 15:07:48
    引入了AndServer这个框架,可参考GitHub上 如何使用?请参考:   添加依赖: dependencies { implementation 'com.yanzhenjie.andserver:api:2.0.1' annotationProcessor '...
  • 在mysql 8.0.22 运行load data local 从本地文本导入数据时,报错:"ERROR 3948(42000): Loading local data is disabled - this must be enabled on both the client and server sides". 结合官方文档和Stack ...
  • 在Ubuntu14.04上正确安装的Docker和Fig后,Docker可以正常使用,但是在使用Fig的时候出现下面的错误client and server don't have same version (client : 1.12, server: 1.10)此时是由于Docker的版本有问题,解决...
  • 出现上述问题时候在server中无法加载tomcat 解决办法如下 你先要配置tomcat运行环境,才能在创建server时使用。
  • Weblogic 学习系列二: Domain and Server 配置 作者:wangwd 2003年4月21日 在系列一中,我们主要探讨了Weblogic的安装,今天我们主要探讨一下Domain and Server 配置方面的内容。 本假设如下前提:windows ...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 407,910
精华内容 163,164
关键字:

andserver