使用 socket 做进程间通信的架构师属于什么水平

86 天前
 blackstack
我们是做安全产品的厂商,最近一个客户端程序,有 Androd 和 Windows 两个平台。

架构师原先是做 Java 的,负责 Android 端的开发,我负责 Windows 端开发。

因为需要和其他程序通信,所以他选定的是 socket ,用于本地进程的进程间通信,这里没有任何跨操作系统和跨设备的通讯需求。

我在 Windows 端用的是命名管道,现在强压我要改成 Socket 。

改 Socket 是没什么难度,但是被强制往自己的代码里糊屎非常难受。

Socket 他还没做任何权限认证,也就是本地的任何线程,不管是其他合法进程还是木马病毒,都可以给它的 Socket 端口发消息,只要格式正确它都会执行。

请问下,IPC 用 Socket 的多吗?是纯属他太菜,还是我水平不足??
14363 次点击
所在节点    程序员
137 条回复
azhangbing
85 天前
android 用 binder , 如果 android 给 window 通讯用 socket 没啥问题, 不然肯定是使用谷歌规定的方法比较好
leonshaw
85 天前
你的命名管道有认证吗?
StarsunYzL
85 天前
用 socket 再正常不过了,没记错的话 libevent 在 Win 上单进程内都有用 socket 做事件通知
james122333
85 天前
看是什么 socket
socket domain 确实可选
但身为一个资深类 unix 用户给我选应该是写管道 需要远程转接即可 因为命令行标准输出入友好 可本地可远程脚本测试除错方便 符合 kiss 原则 使用起来爽的不能再爽
cnbatch
85 天前
留书面证据时,还要明确写出你的 named pipe 在先、他的 socket 随后推出,这个时间关系很重要。

顺便把楼上各位提到的 Windows 为什么要用 pipe 的理由说清楚,重点讲述 Windows 的安全特性跟 Android 的不一样,只能这样做。

如果对方耍无赖,那就直接怼回去:我当初开始写的时候,你干嘛不把标准提出来?为什么你拒绝事先把话说清楚,非要在完工的时候才把“标准”列出来?你这样做会导致工期延误,造成的损失是不是你来承担?如果因为安全特性不同,按照你的标准干活后导致出现安全隐患,是不是你负责? release 给客户前,要不你来做安全验收,一旦出了事你也得背锅。
(语气语句可以适当调整)
james122333
85 天前
还有一点这么搞可以自动化 好用
现在应用动不动就 tcp api 很不好用
colinlikepotatos
85 天前
太难受了,他不走,就我走😂,我光看这你描述就难受。不管怎么操作都是给自己找了个天大的麻烦。
4KMOMhIkocgLELMt
85 天前
支持 @bagel 的答案。
既然你是安全产品,很可能是 system 权限。
socket 是没有权限限制的,后果就是任何一个具有普通权限的程序都可以暴力破解你的验证,从而接管你的软件,甚至通过你软件的 bug 提权。
而隔离不同权限之间通信,之前就是 named pipe ,现在也有了类似 Linux 的 pf_unix 。
chenqh
85 天前
虽然不想说,但是很多条例,本身就是记住就好了,要知道条例之所以是条例,那就只有踩一次坑了.哪来那么多的机会让你踩坑
chenqh
85 天前
一句话,菜就公式化.你想要灵活,就只有高手了.
dearmymy
85 天前
不跨平台,windows 肯定命名管道啊。他哥们是不是没开发过 windows 。 用 socket 不是不行,坑有的你踩
Tink
85 天前
@blackstack 真离谱,要真是这么回事,你说的这问题都不叫事,后面有你受的
sadfasdfa
84 天前
我是觉得有多个端的话还是用通用的 IPC ,不管以后跨不跨端,需求赶不上变化
iOCZS
84 天前
问题是你们没有提前讨论和确定实现细节
cppgohan
84 天前
参考 QLocalSockets 封装一套? win 下命名管道, 否则就用文件 socket
SuperDaFu
84 天前
@dajj 自从我接受了这个现实,想怎么改都行。只要给我时间,不让我加班,我都行的。
SuperDaFu
84 天前
这其实不是一个技术问题。
只是你们两冲突的问题。就算我们说你的方案好,别人也不理你的。
ldw4033
84 天前
请问下,IPC 用 Socket 的多吗?是纯属他太菜,还是我水平不足??
ldw4033
84 天前
为啥不说自己也菜?
iceiceice9527
84 天前
我们 unix domain socket 挺好的啊。我们是 go 和 c++进程之间的交互。2000 台机器,每台都是这样的,没遇到过什么问题。

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/1075187

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX