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

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

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

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

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

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

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

请问下,IPC 用 Socket 的多吗?是纯属他太菜,还是我水平不足??
14385 次点击
所在节点    程序员
137 条回复
blackstack
85 天前
@ldw4033 我前面说了呀,我也不是专门搞 windows 客户端开发的,也是一边弄一边学…
blackstack
85 天前
@SuperDaFu 这实在要好心态,一个设计被改便了,然后再被要求改回去……
blackstack
85 天前
@iceiceice9527 问题是他用的是 tcp socket…
blackstack
85 天前
@iOCZS 基本上没有讨论,他权利大,想改就改了,想让后端改就让后端改,从来没问过我这里这样改有没有问题。
xsen
85 天前
主流的 IPC 通讯方式(实际产品使用的)或者二次封装的 MQ ,99%以上都是基于 socket 的
按照我理解,N 年前开始应该都没什么人用文件或者 pipe 这样的方式做 IPC 的了

socket 监听 localhost ( 127 )不存在什么安全性问题,若需要额外加个鉴权则是(应用层协议)
blackstack
85 天前
@SuperDaFu 还是考虑安全性问题,前面已经解释过。
还有另外一方面,客户端的技术选型、框架搭建、功能实现,都是我自己来的。

然后现在他跑出来要求按他的规范来改,他是搞 java 的,我搞.net他对.net 完全不懂,硬要来给我制定规范。
c3de3f21
85 天前
在公司,我只为我的上司和老板服务。
hxzhouh1
85 天前
我写过客户端组件之间使用 grpc 通信的
Araell
85 天前
反正就是把所有风险点书面提出来,at 所有相关人确认,说清楚谁做决策谁负责,再细点就是 CR 一行一行跟他过。结算的时候能撇清责任就行,别的不用太纠结,就是上个班儿,不值得
chutianyao
85 天前
用 domain socket 挺好的啊,我记得 android 的 binder 好像就是基于这个实现的? 说明这个架构师有水平
sampeng
85 天前
不是臭 java 怎么样。。但是。。。java 出生的所谓架构师 10 个里面 9 个菜。
你可以提出你的意见,你也可以规划后续的扩展,强压算什么?倒是先解释为什么用 socket 啊?就是一句我们所有程序通信用 socket ?

其实压根不是技术问题。就是沟通问题。用什么都可以,说服团队是所谓架构师最基本的职业技能。如果只是用 title 职位压人,是我肯定要怼回去,最少要怼到上级我不同意。
sampeng
85 天前
按楼主描述。你和他是平行的。。鸟他干啥???架构师很少是上级,我就见过一个 titile 是架构师的。天天说我是架构师,你们要听我的。问为什么要选型 xxx 。因为我是架构师。问这个选型可能有问题,能不能换一个。因为我是架构师。

谁鸟啊。。爱谁谁,有本事自己找我老大说去。公开怼技术不虚。全是就事论事。
victorc
85 天前
你菜
主流是用 socket ,不安全就加上鉴权
james122333
85 天前
@xsen

socket 不能直接标准输入 也不需要真的写 pipe 只要标准输出输入正常即可 用 shell 就可以把它们串起来了 socket 要自己实现鉴权多麻烦 不如直接依靠作业系统权限 简单暴力灵活才是王道
changepll
85 天前
建议你写你的。他写他的。达不成统一的。 就走服务端中转。 他不鸟你, 你迁就他有什么好处。
james122333
85 天前
通常纯的 web 仔才会整天 socket 理解深刻点的不会这么想 说人菜的更是不知所云
xavierchow
85 天前
我看楼主的烦恼其实不是具体的技术方案,而是人和人的关系。
良好的团队氛围应该是可以用开放的心态一起讨论问题,其实很多方案也没有绝对的好和坏,要根据场景和其他的各种因素(比如 timeline ,扩展性,成本等)综合考虑,经常要做 tradeoff 。
如果意见不一致,就直接按 owner 的想法走就可以,谁 own 谁决定,谁决定谁负责。换句话说,楼主需要事先明确这个通信方案的最终 owner 是谁,如果是这位架构师,楼主配合就可以,事后如果方案不妥当要返工楼主不背锅就行;如果 owner 是楼主自己,架构师的方案不认同就拒绝。
最怕的楼主心里的 owner 是自己,但是老板心里的 owner 是架构师...

建议找老板聊一下,但是不要先聊技术方案,而是先明确组织关系和权责。
james122333
85 天前
所有人追求不同 但能的话化境宗师都不够 当然要天下无敌
jamlee
85 天前
Node 的进程间通信都是用的这个,还可以传输 fd (例如已经打开的 socket )。另外进程间可以传输大量数据的,例如日志发给主进程写入文件。
zerovoid
85 天前
这不是技术问题,这是权力斗争问题,你先来,他后到,但是他可以给你定标准,你不爽,但是你最终还是按他的标准改了,这说明他的权力就是比你大,那你听他的差遣就完事了。

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

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

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

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

© 2021 V2EX