开启本地服务器,利用二维码进行通信[Demo]

开启本地服务器,扫描二维码进行通信

前言:之前写过一个通过socket通信的软件,实现pc与android互相传送文件,android控制pc等等功能。现在想做一个使用http通信的(纯粹无聊),优点是不需要下载android客户端,并且希望能在ios端也可以使用(当然有待改进)。手机通过扫描产生的二维码来访问pc的客户端,再进行通信。


现在只处于demo阶段,后面有空陆续上传完整版。现在还是学生,有待指导。


1.使用的技术

Java开启Web服务器,使用zwing生成二维码






2.UI讲解

ui如下:



第一个框是ip
第二个框是工程web目录下的文件名:这里要把需要手机访问的内容添加在工程web目录下(未来可能改进自动获取)
点击make生成二维码,再用手机扫描










3. 代码讲解



start.java                         :启动main
SimpleHttpServer.java      :开启http服务器
UI.java                            :UI界面
MatrixToImageWriter.java :生成二维码


SimpleHttpServer:
public class SimpleHttpServer implements Runnable {   
//...
public static int PORT = 9528;// 端口  这里可以设置端口   
//...
 void fileReaderAndReturn(String fileName, Socket socket) throws IOException {   
	//...
	//下面设置对应文件类型的处理:例如html:text/html  还有很多 具体可以百度contentType 
	if ("htmlhtmxml".indexOf(fileEx) > -1) { //(显示)匹配文件类型 , 如果是html,htm,xml..   
           		 contentType = "text/html;charset=UTF-8";   
       		 } else if ("jpeggifbpmpng".indexOf(fileEx) > -1) { // (下载)如果是jpeg,jpg,gif,bpm,png,pdf等等..   
            		contentType = "application/binary";   
       		 }  
		// else if ("jpg".indexOf(fileEx) > -1) { // (图片显示)  
		//       contentType = "image/JPG";   
		//}  
        	else if("pdf".indexOf(fileEx) > -1){
      contentType = "application/pdf";
        	}
        	else if("xml".indexOf(fileEx) > -1){
 		contentType = "text/xml";
       		}
}
//...
   /** */  
   /**  
     * 启动 HTTP 服务器  
     *   
     * @param args  
     */  
    public static void startServer() {   
     
        new SimpleHttpServer();   
    }
}





MatrixToImageWriter:
public final class MatrixToImageWriter { 
// 导出文件
public static void writeToFile(BitMatrix matrix, String format, File file) {..}
//导出流
public static void writeToStream(BitMatrix matrix, String format, OutputStream stream) {..}
//最后我自己修改加了一个writeToBufferedImage
	public static BufferedImage writeToBufferedImage(BitMatrix matrix, String format) {..}
}








4.Demo下载



5.参考

http://blog.csdn.net/klyun/article/details/1682943
http://www.2cto.com/kf/201302/187345.html








  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
网页中实现微信扫一扫,不用备案就能在自己网页中实现扫描二维码 有时我们只需要在自己网页中加入个扫一扫并且获取结果的小小功能就行,然而微信开发门槛太高,需要公众号需要交300块认证,然后域名还要备案,公众号后台需要各种配置,需要调用微信开发各个接口,最后可能并不会看到效果。 现在我要告诉你,你有救了!你只要简单使用上面提供的接口就行,什么论七八糟的统统都不用管了,只需要关注你的程序怎么处理这些数据。 不过任何事情都是相对的,本帖提供的方法缺点也是有的,就是多一次跳转,而大家都知道页面跳转那么当前输入框等控件内容都会丢失。不用担心,问题总是有方案解决的。 如果你只需要扫描下获取结果再处理,那么不用管这多跳转一次的问题。 如果你是在一个表单中某项需要扫描,那 么可以把扫描的那项提到最前面来,强制要求用户必须先扫描才能填写表单其他项,这样问题不 就迎刃而解了? 如果要追求完美扫描不跳转,那么只能一步步按照微信网页开发的要求来了。 大家都知道微信扫一扫,而且很常用,基本都用来扫码关注微信号,扫码付款,再之外的如果要扫的二维码是链接就直接打开访问,非链接的直接显示文字。 然而有时我们需要在自己的网页上调用扫一扫,然后按照自己的需要对获得结果进行处理该怎么办呢?有些同学觉得很奇怪,怎么会有这样的需求。其实这样的使用场景很多的,例如: 扫快递单上的条形码查询它的进度 进度系统中可以根据生产单上条形码查询生产进度 发货系统出入库扫描 扫描网址只需截取其中的一个参数结果而不是直接打开它 。。。 看下面的一个应用效果。 https://img2.mukewang.com/5b42068700012bbf02800560.jpg 是不是很方便呢?微信里打开http://www.jiujiujin.net/wuliu.htm 也可以测试效果。 如果按照通常的步骤在自己网页中调用微信的扫一扫可不是那么简单的。首先得有微信公众号,公众号还得提交认证。我们都知道不光是注册个微信公众服务号就行,而且还得提交认证,每年交300块大洋,前提还必须是企业身份才能注册和认证。 接下来才是编码,这才是考验你耐心的时刻,各种不行,各种莫名其妙的错误,有些新手可能在域名备案上就被卡了半天,因为想要调用微信的jssdk接口要求访问的域名必须是备案的,设置到微信公众号的js安全域名区,然后还要设置服务器白名单,如果你的是虚拟主机而ip不固定的说不定哪天就扫不了了。调用几个接口,参数,token还有7200秒的失效,定时更新还是访问时检查判断再更新,是不是弄过的人都纠结过?很是麻烦,顿时头大了有么有?水不是一般的深,于是纷纷哭爹喊娘求大神骂张小龙。 我发现我废话太多了,说好的5行代码呢?却写了这么多废话,哈哈哈。其实多了解了解也没坏处的,毕竟也算我的摸索过的心路历程。 上面给出的扫一扫指向的链接是:http://www.jiujiujin.net/wuliu.htm,聪明的同学已经打开并右击查看源代码了,可能已经明白是怎么回事了。 答案就是调用了一个接口,这个接口会去执行扫码,然后将扫码的结果作为一个参数返回到来路页面,这样来路页面中就可以获取并处理这个结果了。 废话不多说放代码测试。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值