客户端

开源中国 OsChina Android 客户端源码分析(8)数据库Sqlite

走远了吗. 提交于 2020-04-17 04:07:45
【推荐阅读】微服务还能火多久?>>> 1开源中国客户端使用的数据库部分的源码在net.oschina.app.db包下,两个类一个是用于管理数据库的创建类DatabaseHelper,继承SQLiteOpenHelper,另一个是用于数据库的增删改查的工具类 NoteDatabase 。那么数据库在开源中国源码中哪一模块用到了呢? 便签管理,便签是什么?就是一个记事本的功能o(^▽^)o 2关于 SQLiteOpenHelper的使用,自己之前的项目中没有用到过,看了下,这里有个体会:当获取到 SQLiteOpenHelper实例,并使用getWritableDatabase或者getReadableDatabase打开数据库时,如果数据库没有建立,则建立数据库,并回调oncreate方法,那么数据库建立好了,我们就可以在oncreate方法里完成数据表的建立或者数据的初始化。 3既然要创建数据库,那么数据库的名字,初始化建立的表,版本号这些参数,就需要在 SQLiteOpen Helper类中声明。 4在 数据库的增删改查的工具类 NoteDatabase中,我们发现采用了组合的方式,在其构造函数中完成了 SQLiteOpen Helper实例化,这样在内部声明的方法中,我们就可以直接使用 SQLiteOpen

使用linux套接字实现的简易服务器与客户端

别来无恙 提交于 2020-01-09 20:31:23
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 本文中的代码是我在学习linux套接字编程时写的,运行环境为RedHat,编译环境为G++ 测试环境有两台linux虚拟机,地址分别设为192.168.8.123和192.168.8.99 其中,192.168.8.123上运行了客户端,其源码(client.cpp)为 #include<sys/types.h> //data types #include<sys/socket.h> //main sockets header #include<stdio.h> //standard buffered input/output #include<netinet/in.h> //Internet address family #include<arpa/inet.h> //definitions for internet operations #include<unistd.h> //standard symbolic constants and types #include<stdlib.h> //standard library definitions #include<string.h> //string operions int main() { struct sockaddr_in address; /

使用C#客户端访问FTP服务的一个解决方案

北战南征 提交于 2020-01-07 16:20:09
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 一、写在前面 最近工作中遇到了一个场景,要用C#客户端访问FTP服务器,并实现文件下载功能。之前我使用了一种非常简单粗暴的方法,因为客户端之前就用到了Xilium.CefGlue(可以理解为一个WebKit内核)来实现浏览网页的功能,客户的需求又仅停留在登录FTP对部分压缩包和doc文件进行下载,我索性直接建了个页面,用这个WebKit内核实现对FTP进行访问,效果和Chrome浏览器访问FTP相似。 不过,这个方法有下面三个缺点: 1、Xilium.CefGlue类库占用的空间很大,如果就为了实现客户端访问FTP服务器,放入一个WebKit内核,平白增加了几十MB的空间占用,是非常不划算的。 2、Xilium.CefGlue打开FTP类似Chrome的打开方式,遇到txt、sql等扩展名的文件时,会直接在浏览器中打开,遇到pdf扩展名的文件时,会使用相关插件打开(或因无相关处理工具而进入错误页)。遇到其他扩展名的文件时,如exe、rar、zip、doc等,才会提示下载。 3、无法满足许多用户定制化的需求(虽然内核是开源的,但你敢改么?)。 所以说,使用C#客户端访问FTP服务器,最好的办法还是自己写一套工具类,实现FTP协议下的上传、下载、创建目录、查询目录下文件列表等操作。 二、使用Serv

初学HTML5必须知道的那些事(一)

こ雲淡風輕ζ 提交于 2019-12-24 18:27:26
【推荐】2019 Java 开发者跳槽指南.pdf(吐血整理) >>> 很多时候,不是东西有多难,而是我们不愿意走出这第一步,勇敢的走出这第一步,剩下的即是水到渠成。 一、 Web 基础 1. 认识Internet与Web · Internet 将不同地区不同功能的计算机联系起来。打个比方,我们每家人都是计算机,想要去亲戚朋友家的路就是 internet 。 · web internet 上最大的一个应用,众多数据储存的地方。 2. Web的三要素 图 1 为了防止数据随意泄露,在Internet上传输数据需要遵守http协议,而Web的三要素就是Web浏览器、Web服务器、通信协议(通常为http协议),他们的关系如图1所示。 3. Web相关技术 · 服务器端技术 o PHP(Hypertext Preprocessor) o JSP(Java Server Page) o ASP(Action Server Page) 在服务器运行,这些大多提供了数据库访问的能力 · 客户端 技术 o HTML o CSS 在客 户 端运行,由 浏览 器来解 释执 行 来源: oschina 链接: https://my.oschina.net/u/2971691/blog/810107

一步步教你为网站开发Android客户端

守給你的承諾、 提交于 2019-12-09 10:03:41
注:本文来自友盟-安卓巴士教程大赛第一名获奖作品,作者安卓巴士的ID为liupeinye。推荐给所有刚刚开始接触Android开发的朋友们! 本文面向 Android 初级开发者,有一定的Java和Android知识即可。 文章覆盖知识点:HttpWatch抓包,HttpClient模拟POST请求,Jsoup解析HTML代码,动态更新ListView 背景介绍:客户端(Client)或称为用户端,是指与服务器相对应,为客户提供本地服务的程序。而 android 系统上的90%客户端软件都有一个共性,就是为了改善网页在android系统上体验不佳而生,最具有影响力的软件有:新浪微博、人人网、淘宝等,这类软件最突出的特点就是,先有网站再有软件。由于网络技术发展的多样性,手机浏览器往往无法跟随它的步伐,为改善用户体验,网站客户端软件印运而生。 以下内容100%原创,并在 安卓 巴士论坛首发,如需转载,请注明作者和出处。谢谢合作。 开发Android网站客户端通常有两种方法:第一种,通过服务端的开放平台,调用提供的API接口来开发,比如说open sina;第二种,服务端没有提供任何接口,你也没有服务端任何数据库访问权限,就是一个纯纯粹粹的网站,要你做客户端。今天,我要和大家分享的正是第二种情况。 这是一个简单的示意图,告诉我们,数据是由网页从数据库中取出,我们要为这个系统做客户端

基于NIO的消息路由的实现(七)客户端的一些实现,维持链路,断线重连

China☆狼群 提交于 2019-12-07 15:46:38
一、客户端代码存在的必要性以及我认为需要解决的问题 就NIO通讯本身而言完全没必要分开,其实客户端代码和服务端代码可以放到一起。但是在业务上是分开的。我在做nio的时候思考了许多我自己认为应该解决的问题;主要的如下: 1、链路维护(心跳); 定期的向服务端发送维持链路报文,获得服务端的响应,以证明其仍然在存活状态;同时服务端会记录客户端每次维持链路的时间,用于服务端对通道的超时 判断; 2、断线重连: 一种情况是正常断线,目前我利用对channel的read返回来进行判断; 另一种是非正常短线,我利用维持链路的心跳回应来进行判断,也就是说,当连续发送固定次数的维持链路指令,没有收到服务端的回应的时候,主动断线,启动重连; 二、具体实现: 1、链路维护代码: 定时发送维持链路指令; 判断维持链路指令缓冲区(此缓冲区在每次发送维持链路指令的时候会将指令记录到缓冲区,每次收到链路维护回应报文的时候,会将其所对应的指令清除,如果连续多次收不到回应,那么缓冲区的大小就会达到设置的阈值)的大小,如果达到预设值,就设置客户端连接状态为false;重连线程会依据这个标记做是否重连的判断。 public class KeepChannelThread extends Thread { private static Logger logger = LogManager.getLogger

基于fiddler插件开发的移动测试网络监控与分析

寵の児 提交于 2019-12-07 07:45:47
一、背景和目的: 由于目前 App 前端业务测试很少关注后端网络接口的异常情况,客户端 QA 在项目测试时往往局限于关注测试功能,导致测试粒度较粗。即使按照 CheckList 过功能点,客户端 QA 对后端接口的覆盖情况也很难做到明确把握。 Fiddler 是我们在客户端测试时使用比较普遍的工具,常用于 HTTP 抓包、构造请求等等。原生的 fiddler 插件,缺乏对包大小,网络请求时长、接口访问频次、接口覆盖度等维度进行网络请求的分析,同时提供网速控制的功能,下文介绍开发定制 fiddler 插件辅助 app 业务测试。 二、工具实现原理 首先了解一下 fiddler 的实现 http 代理请求的原理,方便我们深入的研究。 Fiddler 实现的原理是截获了 windows 的 winnet 接口,在转发服务器请求和响应的阶段,可以 hook 住传递的参数,达到监控甚至修改网络数据包的能力。如下图所示, fiddler 提供了 4 个接口, AutotamperRequestBefore , AutotamperRequestAfter , AutotamperResponseBefore , AutotamperResponseAfter 。 我们在自己插件中实现这四个方法即可满足我们自己的测试需求。在我遇到的项目中,我们实现了以下功能。 1 、 发现网络请求包的异常问题

Xe5开发web服务端和手机客户端

耗尽温柔 提交于 2019-12-06 20:36:02
Xe5开发web服务端和手机客户端   核心提示: 我们开发一个三层的android程序建立一个webservices stand-alone vcl application 作为手机访问的服务端1、new-other-webservices2、选择s... 我们开发一个三层的android程序 建立一个webservices stand-alone vcl application 作为手机访问的服务端 1、new->other->webservices 2、选择 stand-alone vcl application 3、这里使用 默认端口8080 4、选择创建接口 5、给服务起个名字 6、点ok后保存工程,保存为目录如下: 7、至此为止,什么代码都不写,点击运行,我们看到 8、启动并点击 open browser按钮在浏览器里看到 一个web服务就创建完成了。 接下来创建一个返回数据集的过程,用webservices发布,供手机端调用。这里我使用firedac 1、打开上一篇自动创建的WebModule 然后分别拖放以下数据连接控件 FDConnection1:firedac连接数据库的 FDPhysMSSQLDriverLink1: 数据驱动 选的是sqlserver ,另外还有 db2 ,oracle,acess ,excel ,sqllite,mysql等

org.apache.commons.net.ftp包开发FTP客户端,实现断点续传,中文支持

时间秒杀一切 提交于 2019-12-06 16:18:42
利用org.apache.commons.net.ftp包实现一个简单的ftp客户端实用类。主要实现一下功能 1.支持上传下载。支持断点续传 2.支持进度汇报 3.支持对于中文目录及中文文件创建的支持。 具体请看代码,上面有详细的注释。简化版本请参见http://zhouzaibao.iteye.com/blog/342766 枚举类UploadStatus代码 Java代码 public enum UploadStatus { Create_Directory_Fail, //远程服务器相应目录创建失败 Create_Directory_Success, //远程服务器闯将目录成功 Upload_New_File_Success, //上传新文件成功 Upload_New_File_Failed, //上传新文件失败 File_Exits, //文件已经存在 Remote_Bigger_Local, //远程文件大于本地文件 Upload_From_Break_Success, //断点续传成功 Upload_From_Break_Failed, //断点续传失败 Delete_Remote_Faild; //删除远程文件失败 } 枚举类DownloadStatus代码 Java代码 public enum DownloadStatus { Remote_File_Noexist

开源中国 OsChina Android 客户端源码分析(1)启动界面 app_start

老子叫甜甜 提交于 2019-12-03 12:33:42
1启动界面的布局文件为app_start.xml ,对应的类文件为net.oschina.app 包下的AppStart.java。 2对于布局文件而言,因为只显示一张主题图片,因此布局简单直接设置背景图片。因为是启动界面,启动时会有短暂的卡顿,对于用户而言体验不好,因此在配置文件中自定义了style ,黑色 无标题 全屏(为什么选黑色的呢?是不是因为背景图图片是白的,衬托的更亮白呢?^_^)。设置了背景图片和无标题 <style name="Theme.AppStartLoad" parent="android:Theme.Black.NoTitleBar.Fullscreen"> <item name="android:windowBackground">@drawable/welcome</item> <item name="android:windowNoTitle">true</item> </style> 疑惑: 2.1既然已经设置了 parent="android:Theme.Black.NoTitleBar.Fullscreen",为什么还要用 <item name="android:windowNoTitle">true</item>,另外在样式中设置了背景图片,为什么在布局文件中还要在设置下背景图片呢?难道重复的工作确实会有效的降低启动界面卡顿的问题吗? 2