开源一个基于nio的java网络程序】的更多相关文章

因为最近要从公司离职,害怕用nio写的网络程序没有人能看懂(或许是因为写的不好吧),就调整成了mina(这样大家接触起来非常方便,即使没有socket基础,用起来也不难),所以之前基于nio写的网络程序就开放出来好了! 写的比较挫,大家见谅! 首先是PollServer类,主要处理select,做网络事件的监听和基于FutureTask的数据发送,代码如下: package gs.gate; import gs.gate.handle.ClientHandle; import java.util…
1.简介 中微子代理(neutrino-proxy)是一个基于 netty 的.开源的 java 内网穿透项目.遵循 MIT 许可,因此您可以对它进行复制.修改.传播并用于任何个人或商业行为. 2.项目结构 neutrino-proxy neutrino-core 与代理无关的基础封装 neutrino-proxy-core 与代理相关的公共常量.编解码器 neutrino-proxy-client 代理客户端项目 neutrino-proxy-server 代理服务端项目 neutrino-p…
实现了基于TCP的Java Socket编程,功能很简单:客户端向服务器端输出一名话"connect",服务器端接收输出到控制台并向客户端输出一名话"Hello",客户端接收并输出. 1.服务器端 package javase.net.socket; import java.io.DataInputStream; import java.io.DataOutputStream; import java.io.IOException; import java.io.I…
前言  这款安卓小游戏是基于SurfaceView的飞行射击类游戏,采用Java来写,没有采用游戏引擎,注释详细,条理比较清晰,适合初学者了解游戏状态转化自动机和一些继承与封装的技巧. 效果展示     游戏概述 这里主要涉及的技术有:①SurfaceView框架 ②角色.武器的封装 ③辅助帧动画 ④追踪打击算法 ⑤多武器实现 ⑥敌我升级策略 ⑦模拟手柄.其中SurfaceView游戏框架我在[[安卓] 8.VIEW和SURFACEVIEW游戏框架]有详细介绍,接下来我还将再次分析下:对于角色.…
可能大家都知道天天团购开源系统,一个做团购的开源项目很赞,前些日子做了基于天天团购系统做的团购客户端和移动端服务器!源代码放出,有了解的可以看看,希望收益! 先说服务器:app的服务器,基于天天团购的数据库重新暴漏的移动端的接口,基于http协议,客户端通过post传值,服务器拿到数据,解析执行,然后json_encode,返回!天天团购的php代码写的实在太多抽象,也许是自己php代码时间不长的原因,总之并没有基于他的系统来做,而是基于数据库来做,介绍下最基本的几个表,cenwor_syste…
Netty是一个高性能.异步事件驱动的NIO框架,它提供了对TCP.UDP和文件传输的支持,Netty的所有IO操作都是异步非阻塞的,通过Future-Listener机制,用户可以方便的主动获取或者通过通知机制获得IO操作结果. Netty的优点有: a.功能丰富,内置了多种数据编解码功能.支持多种网络协议. b.高性能,通过与其它主流NIO网络框架对比,它的综合性能最佳. c.可扩展性好,可通过它提供的ChannelHandler组件对网络通信方面进行灵活扩展. d.易用性,API使用简单.…
关于 Neting 刚开始的时候是打算使用微软官方的 Yarp 库,实现一个 API 网关,后面发现坑比较多,弄起来比较麻烦,就放弃了.目前写完了查看 Kubernetes Service 信息.创建 Route 和 Cluster 和绑定 Kubernetes Service.简单来说,就是完成了基础部分,配置路由和后端服务绑定,如果想实现动态路由和直接转发等功能,只需要按照官方的文档,增加中间件即可. 原本打算使用 .NET 6 的 AOT(一共40MB) ,但是打包运行会容易出现一些依赖问…
写了篇MVVM小记http://www.cnblogs.com/whosedream/p/mvvmnote1.html,说好要写点MVVMLight的东西,所以接着写,以便和大家共勉. 我假设你已经有了MVVM的一些概念,那么我们就单刀直入了,怎样基于MVVMLight 来建项目呢?其实很简单,首先我们需要下载MVVMLight,然后安装,完了你会看到 Binaries里有各个版本的程序集 这里我用到了silverlight4的程序集 不过你安装了模板的话,新建模板项目,那么上面这些程序集就不用…
还在dotnet framework 2.0的时代,当时还没有EF,而NHibernate之类的又太复杂,并且自己也有一些特殊需求,如查询结果直接入表.水平分表和新增数据默认值等,就试着折腾个轻量点ORM框架,就慢慢有了这个Light.Data,也一直在公司和个人的项目使用,后来陆陆续续也支持了跨数据库并在mono中使用.到了dotnet core来临,也尝试移植,1.0的时候由于类库不完善,效果不理想.2.0的基本完善了,由于个人严重的强迫症和拖延症,一直在折腾细节.写单元测试和磨文档,磨到差…
目录 1,快速入门 1.1 继承 ActionAttribute 特性 1.2 标记代理类型 2,如何创建代理类型 2.1 通过API直接创建 2,创建代理类型 通过API 通过 Microsoft.Extensions.DependencyInjection 通过 Autofac 3,深入使用 代理类型 方法.属性代理 上下文 拦截方法或属性的参数 非侵入式代理 Nuget 库地址:https://www.nuget.org/packages/CZGL.AOP/ Github 库地址:http…
5月17日更新: 广播信息.用户列表.信息确认列表以及通信信息,从原来的用字符串存储改为使用字典来存储,使代码更清晰,更容易扩展,具体更改的格式如下: 广播信息(上线): { 'status': 信息状态标志, 'user_info': 本机的用户名和主机名, 'pub_key': 本机生成的公钥, } 广播信息(下线): { 'status': 信息状态标志, 'user_info': 本机的用户名和主机名, } 用户列表的元素: { 'user_info': 对应用户的用户名和主机名, 'p…
最近有一个arm板上的程序需要重写用户手册,在网上找了许久,没找到合适的截屏工具.于是只好自己动手做一个了. 因为arm板上有已经有了Qt环境,于是想到用 Qt的QPixmap::grabWindow 直接抓屏即可. 部署到arm设备后用com连接设备,抓屏,一步OK!虽然简单,但给编写手册的小伙伴们使用足够了. 代码没几行,贴上全部代码了. #include <QApplication> #include <QPixmap> #include <QDesktopWidget…
一.下图是典型的UDP客户端/服务器通讯过程 下面依照通信流程,我们来实现一个UDP回射客户/服务器: #include <sys/types.h> #include <sys/socket.h> ssize_t send(int sockfd, const void *buf, size_t len, int flags); ssize_t sendto(int sockfd, const void *buf, size_t len, int flags, const struc…
一.下图是典型的UDP客户端/服务器通讯过程 下面依照通信流程,我们来实现一个UDP回射客户/服务器 #include <sys/types.h>  #include <sys/socket.h> ssize_t send(int sockfd, const void *buf, size_t len, int flags); ssize_t sendto(int sockfd, const void *buf, size_t len, int flags, const struc…
之前用java做过0-99的数字和英文之间的翻译,输入数字就会翻译成英文,输入英文会翻译成数字,比如输入56  输出fiftysix   输入fiftysix  输出56, 发现这会有一个异常,当输入不符合格式时,比如英文和数字混输,或者输入标点会报NumberFormatException异常,现在捕捉了这个异常,顺便把 输入越界也加入了异常,比如输入100时 报"输入越界!". 以下附上代码: package TranslateClass;import java.util.Scan…
创建一个图片读取,并在windows下窗口显示的程序. #include <visp/vpDisplayD3D.h> #include <visp/vpDisplayGDI.h> #include <visp/vpDisplayGTK.h> #include <visp/vpDisplayX.h> #include <visp/vpDisplayOpenCV.h> #include <visp/vpImageIo.h> int mai…
1. AndroidAsync   AndroidAsync 是一个基于nio的异步socket ,http(客户端服务器端),websocket,socket.io库,AndroidAsync 是一个底层的网络协议库,如果你想要一个容易使用,高级的,http请求库,请使用Ion(它是基于AndroidAsync 的),正常来说开发者更倾向于使用  Ion. 如果你需要一个未被封装的Android的raw Socket, HTTP client/server, WebSocket, and So…
原帖地址 http://www.oschina.net/project/lang/19?tag=64&sort=time 极简网络爬虫组件 WebFetch WebFetch 是无依赖极简网页爬取组件,能在移动设备上运行的微型爬虫. WebFetch 要达到的目标: 没有第三方依赖jar包 减少内存使用 提高CPU利用率 加快网络爬取速度 简洁明了的api接口 能在Android设备上稳定运行 小巧灵活可以方便集成的网页抓取组件 使用...更多WebFetch信息 开源爬虫框架 Guozhong…
NIO主要原理及使用 NIO采取通道(Channel)和缓冲区(Buffer)来传输和保存数据,它是非阻塞式的I/O,即在等待连接.读写数据(这些都是在一线程以客户端的程序中会阻塞线程的操作)的时候,程序也可以做其他事情,以实现线程的异步操作. 考虑一个即时消息服务器,可能有上千个客户端同时连接到服务器,但是在任何时刻只有非常少量的消息需要读取和分发(如果采用线程池或者一线程一客户端方式,则会非常浪费资源),这就需要一种方法能阻塞等待,直到有一个信道可以进行I/O操作.NIO的Selector选…
简单记录,Java 核心技术卷I 基础知识(原书第10 版) 一个简单的Java应用程序"Hello, World!" Hello, World! Goodbye,World! 一个最简单的Java应用程序,Hello,Java public class FirstSample { public static void main(String[] args) { System.out.println("We will not use 'Hello, World! '"…
目录 一个简单的Java应用程序 首次运行结果 程序示例 运行结果 修改大小写之后的运行结果 程序示例 运行结果 关键字public 关键字class 类名及其命名规则 类名必须以字母开头 不能使用Java保留字作为类名 类名的标准命名规范 骆驼命名法(camel case) 源代码的文件名公共类名的关系 类字节码 main方法 main方法的声明格式 源代码中的块 方法体 调用方法 println方法 程序示例 运行结果 println方法打印空行 程序示例 运行结果 程序示例 运行结果 一个…
一.Netty概述 Netty 是由JBOSS 提供的一个java 开源框架.Netty 提供异步的.事件驱动的网络应用程序框架和工具,用以快速开发高性能.高可靠性的网络服务器和客户端程序. 也就是说,Netty 是一个基于NIO 的客户.服务器端编程框架,使用Netty 可以确保你快速和简单的开发出一个网络应用,例如实现了某种协议的客户,服务端应用.Netty 相当简化和流线化了网络应用的编程开发过程,例如,TCP 和UDP 的socket 服务开发. “快速”和“简单”并不用产生维护性或性能…
好久没有看过Java网络编程了,现在刚好公司有机会接触,顺便的拾起以前的东西 参照原博客:http://www.cnblogs.com/linzheng/archive/2011/01/23/1942328.html 一.网络编程  通过使用套接字来达到进程间通信目的的编程就是网络编程. 二.网络编程中常见的问题 一个是如何准确的定位网络上一台或多台主机,另一个就是找到主机后如何可靠高效的进行数据传输. 在TCP/IP协议中IP层主要负责网络主机的定位,数据传输的路由,由IP地址可以唯一地确定I…
一,网络编程中两个主要的问题 一个是如何准确的定位网络上一台或多台主机,另一个就是找到主机后如何可靠高效的进行数据传输. 在TCP/IP协议中IP层主要负责网络主机的定位,数据传输的路由,由IP地址可以唯一地确定Internet上的一台主机. 而TCP层则提供面向应用的可靠(tcp)的或非可靠(UDP)的数据传输机制,这是网络编程的主要对象,一般不需要关心IP层是如何处理数据的. 目前较为流行的网络编程模型是客户机/服务器(C/S)结构.即通信双方一方作为服务器等待客户提出请求并予以响应.客户则…
Java - 网络编程(NetWork)   一.java.net包下的 InetAddress 类的使用:     > 一个 InetAddress 代表着一个IP地址     > 主要用来查看本机的IP和主机名   1.方法介绍:     > InetAddress inet = InetAddress.getByName("www.baidu.com");:调用静态方法创建一个对象     > getHostName();:返回IP地址的域名     &g…
一,网络编程中两个主要的问题 一个是如何准确的定位网络上一台或多台主机,另一个就是找到主机后如何可靠高效的进行数据传输. 在TCP/IP协议中IP层主要负责网络主机的定位,数据传输的路由,由IP地址可以唯一地确定Internet上的一台主机. 而TCP层则提供面向应用的可靠(tcp)的或非可靠(UDP)的数据传输机制,这是网络编程的主要对象,一般不需要关心IP层是如何处理数据的. 目前较为流行的网络编程模型是客户机/服务器(C/S)结构.即通信双方一方作为服务器等待客户提出请求并予以响应.客户则…
基于Mapxtreme for JAVA的电子地图设计与实现学生毕业设计,适合测绘类专业研究目标:        开发一个基于MapXtreme for JAVA的校园电子地图项目,使用MapInfo来绘制地图使用户能够实时的了解华南理工大学广州学院校园及周边的地理信息. 研究内容:      校园电子地图系统共分为4个功能模块来实现:      1.地图放大.缩小及漫游的功能模块:为了能够清晰的查看地图的某一角落的详细信息,了解学校的地理位置以及学校的地理规划.用户可以在电子地图上对感兴趣的地…
在上一节教程中,使用Maven创建了一个Web应用程序.这里有一个指南,告诉你如何转换Web应用程序到Eclipse IDE支持的形式. 注意,通过WTP工具Eclipse IDE支持Web应用程序,所以需要让基于Maven的项目支持它. 1. mvn eclipse:eclipse -Dwtpversion=2.0 要转换一个基于Maven的Java项目支持IDE,使用此命令: mvn eclipse:eclipse 对于Web应用程序,需要额外的参数,使其支持 Eclipse WTP,应该使…
1.进程之间的通信 进程是指运行中的程序,进程的任务就是执行程序中的代码. 存在计算机网络上的两个进程只需要关注它们通信的具体内容,而不需关注消息在网络上传输的具体细节. 2.计算机网络的概念 Internet提供的服务包括www服务,电子邮件服务,文件传输服务(FTP),远程登录服务(Telnet). 全球用户可以通过或这些服务来获取Internet上的信息,或者开展各种业务. 3.udp和tcp 两个进程可以占用同样的端口号,但是必须是不同的运输层协议,比如一个进程使用的是TCP协议,占用7…
在上一节教程中,使用Maven创建了一个Web应用程序.这里有一个指南,告诉你如何转换Web应用程序到Eclipse IDE支持的形式. 注意,通过WTP工具Eclipse IDE支持Web应用程序,所以需要让基于Maven的项目支持它. 1. mvn eclipse:eclipse -Dwtpversion=2.0 要转换一个基于Maven的Java项目支持IDE,使用此命令: mvn eclipse:eclipse 对于Web应用程序,需要额外的参数,使其支持 Eclipse WTP,应该使…