Golang实现windows两个应用程序进程间通信之二Winio的Bug

Golang实现windows两个应用程序进程间通信之二Winio的Bug

上回提到源码能正常跑起来了,但多次测试后发现有个很严重的问题。在win7下,客户端首次dial时成功连接上后write就阻塞了,而且服务端并没有收到新的请求,一直阻塞在Accept。刚开始还以为自己的代码有问题,试了很多次,才发现这个Bug。网上的代码其实没问题,只是我这Win7系统,直接触发Bug了。

github https://github.com/microsoft/go-winio/issues/173 上有提到这个问题,但官方并没有修复,有人判断是因为微软不再更新Win7了。

I was trying go-winio in my project, but I noticed that the same code had diffe

Golang实现windows两个应用程序进程间通信

Golang实现windows两个应用程序进程间通信

一、 需求

项目需要在windows中由A服务启动B.exe,当B程序处理完任务后,将数据返回给A。由于需要考虑兼容性问题,不能用socket相关通信协议。

二、思路

在windows中要实现进程间通信,可以用的方式有:共享内存、socket、基于win32的消息通信(sendmessage)以及管道通信等。刚开始用的是通过临时文件来传递消息,即B程序将处理结果写到tmp.file中,服务A 隔xx秒去读取tmp.file。这个方法在项目中测试了没啥大问题,但是实在是非常Low。于决定采用其它方式实现,测试了共享内存来进行通信,发现只是比临时文件的方式好一点点,本质并没什么大的变化。再测试调用win32的api来sendmessage,发现这个api是在winform中才

windows service隐藏服务(不显示在服务列表中)

这个用sc query xxxx会提示据绝访问,但用sc qc xxxx可以查到

sc sdset xxxx "D:(D;;DCLCWPDTSD;;;IU)(D;;DCLCWPDTSD;;;SU)(D;;DCLCWPDTSD;;;BA)(A;;CCLCSWLOCRRC;;;IU)(A;;CCLCSWLOCRRC;;;SU)(A;;CCLCSWRPWPDTLOCRRC;;;SY)(A;;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;BA)S:(AU;FA;CCDCLCSWRPWPDTLOCRSDRCWDWO;;;WD)"

这个用sc query和sc qc xxxx都查不到

sc.exe sdset xxxx "D:(D;;DCLCWPDTSDCC;;;IU)(D

jeecgboot mapper.xml联合查询之前端灵活使用表别名筛选

# jeecgboot mapper.xml联合查询之前端灵活使用表别名筛选

一、背景

一个项目使用jeecgboot来进行开发,有一个需求:报表里的关键字段都能在前端做查询筛选。由于这个报表是通过mapper.xml 里写sql然后动态拼接的,很多关键字段在不同的表里,如果前端直接传name=xxx,将会报错:Column 'name' in where clause is ambiguous,大概意思是表字段不明确。又或者我只想查老师级别level=1下的学生时,直接传level=1,也同样会报错。

-- 这个是举例说明,实际业务比这复杂得多
select a.name,b.sex,c.name,c.level tName from studen