V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
eightqueen
V2EX  ›  程序员

终于知道知乎网红轮子哥的编程水平了

  •  1
     
  •   eightqueen · 2016-12-27 18:59:43 +08:00 · 70435 次点击
    这是一个创建于 2886 天前的主题,其中的信息可能已经有所发展或是发生改变。

    即便你工作当中用不到网络编程,好歹大学学过吧,都怎么进微软的?

    187 条回复    2017-05-03 01:29:24 +08:00
    1  2  
    21grams
        101
    21grams  
       2016-12-28 09:58:48 +08:00
    不知道是不是现在语文阅读能力都集体退化了,轮子哥不是明明在嘲讽那句话啊? 都不知道你们是怎么理解的。 如还有不理解的,请去看一下轮子哥的微博,前几天的微博里也提到了这个,说的很清楚。
    starcraft
        102
    starcraft  
       2016-12-28 10:02:52 +08:00 via iPhone
    他认真答的我看着毫无波动,在其他回答里总能看到他到此一游,所以我一直想知乎提供屏蔽功能.....
    wwqgtxx
        103
    wwqgtxx  
       2016-12-28 10:02:53 +08:00 via iPhone
    @SoloCompany 我很好奇哪里可笑了
    作为客户端,连接同一个服务器 ip 和端口最多只能发起 65k 的连接
    作为服务器,在一个 ip 上监听一个端口,最多只能接受
    全球 ip 地址数^最大端口数
    那么要想突破这个限制,要不然就服务器监听多端口,要不然就再给服务器提供个 ip 地址,这个理解难道有什么问题么?
    SoloCompany
        104
    SoloCompany  
       2016-12-28 10:11:05 +08:00
    @21grams 第一反应我也觉得他是在说反话,尤其还带了个(逃)结尾,但问题是第一个回复真的很挑战我的语文阅读能力,也许是真的退化了吧
    raincious
        105
    raincious  
       2016-12-28 10:19:21 +08:00
    @8bit

    俺只是一个帖子都没看清就回了的路过群众。(正在掩面跑开……
    xiaoyang7545
        106
    xiaoyang7545  
       2016-12-28 10:36:29 +08:00
    没意义。。我公司的 CTO 还是亚马逊老总级别的技术。写出的 PHP 就是像大学生水平。。可是人家其他方面牛太多了
    skylancer
        107
    skylancer  
       2016-12-28 10:45:05 +08:00
    我其实没搞懂... 这不是大学就该上的内容吗,考试怎么过的...
    乖乖上好课我不信能这样回答
    c0878
        108
    c0878  
       2016-12-28 10:45:59 +08:00
    喷轮子的你们有本事弄一个和他一样牛逼的 ai 来再说
    论 ai 机器人爬知乎 我只服轮子
    woostundy
        109
    woostundy  
       2016-12-28 10:47:30 +08:00
    @helloSwift 讲道理,能出现在 C++ Primer 封面,超过 95%是没问题的。
    julyclyde
        110
    julyclyde  
       2016-12-28 10:48:53 +08:00
    @est 用 seq/ack 头区分同 4 tuple 是不是会被 RST 掉?
    kamushin
        111
    kamushin  
       2016-12-28 10:49:19 +08:00
    是有术业有专攻这个道理, 但是 ai 好好带逛就行了, 回答不是自己的"专攻"的领域, 被吐槽也很正常吧.
    julyclyde
        112
    julyclyde  
       2016-12-28 10:49:32 +08:00
    其实最关键的错不在于他没搞明白 4 元祖的概念,而在于他发明了“会分配一个临时端口”这种做法
    narrowei
        113
    narrowei  
       2016-12-28 10:50:23 +08:00
    大学学过考过就一定记得???什么逻辑。。。
    kamushin
        114
    kamushin  
       2016-12-28 10:51:57 +08:00
    @julyclyde +1. “会分配一个临时端口”这个说法实在是有趣, 要是没有这句话, 真以为他在钓鱼..
    popstk
        115
    popstk  
       2016-12-28 11:07:57 +08:00
    @kamushin @julyclyde
    临时分配端口 有什么问题?难道服务端监听到一个连接不会分配一个新端口进行通讯?
    4 元组有什么关系?难道会出现这样的情况,服务端使用同一个端口 同时 与两个连接通讯?比如:
    (192.168.1.1:999, 192.168.1.2:188)
    (192.168.1.1:999, 192.168.1.3:199)

    诚心求指教,看了两页评论表示还是一脸懵逼
    eightqueen
        116
    eightqueen  
    OP
       2016-12-28 11:16:38 +08:00   ❤️ 1
    @Taojun0714 我肯定有不会的知识,那么我尽量不装逼强答。一旦打错,你们要打脸,我认。现在轮子哥是又想装逼,又不想被打脸,哪有这么好的事,你去看看他在知乎的回答就知道了。
    xsliang
        117
    xsliang  
       2016-12-28 11:18:45 +08:00
    “编程水平,网络编程,大学学过,进微软”扯到一起
    我总觉得有一股浓浓的*味
    jsou
        118
    jsou  
       2016-12-28 11:29:58 +08:00
    @popstk
    服务端就是只使用一个端口。
    “同时”不是真同时,并发和并行的区别。
    kamushin
        119
    kamushin  
       2016-12-28 11:36:44 +08:00
    @popstk 你可以查阅"Unix 网络编程"中, IO 相关章节, 其中的 IO 复用篇.
    enenaaa
        120
    enenaaa  
       2016-12-28 11:46:26 +08:00   ❤️ 2
    @popstk

    服务端 accept 一个 socket , 只是增加一个文件描述符,不会占用一个新端口。所有的客户端连接都是共用 listen 绑定的那个端口。服务端的网络协议栈根据 socket 来区分数据。

    @jsou 同时当然是真同时, 就像多核机器上,两个进程可以各自操作 2 个文件,没有其他影响(忽略硬件问题)。

    @kamushin io 多路复用是指怎么处理 socket 数据, 跟这个没关系。
    jedihy
        121
    jedihy  
       2016-12-28 11:47:01 +08:00
    图片看不到了啊
    DingSoung
        122
    DingSoung  
       2016-12-28 12:06:34 +08:00
    看过, Windows C++牛人,确实写了很多轮子,虽然没什么人用。
    另外,谁都年轻过,谁也不是各个方面都牛,那些细节的东西很难记的,何况一查就知道,何必记
    est
        123
    est  
       2016-12-28 12:13:32 +08:00
    @julyclyde 去掉 CONNTRACK

    iptables -t raw -A PREROUTING -p tcp --port 8080 -j NOTRACK
    stormpeach
        124
    stormpeach  
       2016-12-28 12:18:14 +08:00
    网络编程还是得问陈硕啊
    chiu
        125
    chiu  
       2016-12-28 12:22:03 +08:00 via Android
    我轮风评还是很好的
    jsou
        126
    jsou  
       2016-12-28 12:25:43 +08:00   ❤️ 2
    @enenaaa
    并发不一定是“同时”,线程的调度是操作系统做的。
    服务端 ip:port 的接收和返回也是过缓冲区的。

    能够真同时进行的场景更多是称为“并行”。就像你举的例子,两个进程在不同的 cpu 核心里并行执行。
    在并发的应用中,会局部出现并行的现像。但这只是操作系统、 cpu 、服务容器调度过程中的随机性的体现。

    并发!= 并行
    wwqgtxx
        127
    wwqgtxx  
       2016-12-28 12:35:10 +08:00
    @jsou 不管“ 并发是不是“同时” ”,就算是真正的“同时”,也不影响服务器通过一个端口和多个客户端进行通讯
    jsou
        128
    jsou  
       2016-12-28 12:41:21 +08:00
    @wwqgtxx
    当然不影响和多个客户端进行通讯,不然怎么叫并发呢。
    只是有人不看我说的并发和并行,非要纠结同时这个字眼。
    julyclyde
        129
    julyclyde  
       2016-12-28 12:50:03 +08:00
    @popstk 不是“难道不是”而是“显然不是”分配一个临时端口。你需要加强学习
    julyclyde
        130
    julyclyde  
       2016-12-28 12:50:56 +08:00
    @est 序列号是由 tcp 协议栈处理的吧,不是 netfilter 处理的吧?
    julyclyde
        131
    julyclyde  
       2016-12-28 12:51:33 +08:00
    @popstk 你想想如果分配个临时端口,怎么告诉客户端“我这边换了”这个信息呢?
    julyclyde
        132
    julyclyde  
       2016-12-28 12:52:33 +08:00
    @kamushin 有了“临时端口”这句话之后,发现他是“真”不会,原来不是钓鱼啊。哈哈哈。我也觉得是这样
    enenaaa
        133
    enenaaa  
       2016-12-28 12:57:30 +08:00
    @jsou 人家问的是两个网络连接是不是同时通讯, 你扯什么进程线程。从网络连接的角度, 它们当然是可以同时通信的。 至于在机器执行层面是不是真*同时, 这是其他问题。
    Yc1992
        134
    Yc1992  
       2016-12-28 12:57:33 +08:00
    楼主终于找到喷点了,喷的爽吗?
    dreamwar
        135
    dreamwar  
       2016-12-28 13:02:06 +08:00
    LZ 已经被喷的血肉模糊
    eightqueen
        136
    eightqueen  
    OP
       2016-12-28 13:06:15 +08:00
    @Yc1992 我没有喷啊,我只是不迷信权威。
    est
        137
    est  
       2016-12-28 13:26:35 +08:00
    @julyclyde 就是手动来构造 tcp 。那个命令就防止系统不认包给 rst 。
    Vizogood
        138
    Vizogood  
       2016-12-28 13:33:49 +08:00
    你还记得那些年大学里学过的毛概么.......
    julyclyde
        139
    julyclyde  
       2016-12-28 13:36:09 +08:00
    @est 你这个首先假设了 RST 是由 netfilter 发的。但我觉得应该是协议栈本身发的呢
    SoloCompany
        140
    SoloCompany  
       2016-12-28 13:44:39 +08:00
    @enenaaa 说概念首先得有个标准,同时的标准应该是指多个 CPU 核心可以一起处理不阻塞,在这个概念的前提下, linux 的 tcp 协议堆栈的实现应该不满足这个条件。所以 @jsou 是对的。

    意思是说,服务端的一个 ip:port 是共享同一组缓冲区的,也就是两组应用如果是服务同一个服务端口的话,就不能真正的同时处理,只能分时并发处理,至少在从缓冲区获取以及写入数据这个行为上是互斥的。

    当然,是否有其它内核能支持真正的同时,我就不清楚了
    momocraft
        141
    momocraft  
       2016-12-28 14:02:33 +08:00
    人答案都删了..何必 233
    kozora
        142
    kozora  
       2016-12-28 14:08:06 +08:00
    那个。。少看知乎 - -
    Yc1992
        143
    Yc1992  
       2016-12-28 14:30:30 +08:00
    @eightqueen 脑子是个好东西
    est
        144
    est  
       2016-12-28 14:30:46 +08:00
    @SoloCompany 可以直接上 intel 的 dpdk 。
    enenaaa
        145
    enenaaa  
       2016-12-28 14:48:30 +08:00
    @SoloCompany 看一下语境, 人家的“同时”不是你说的“同时”
    SoloCompany
        146
    SoloCompany  
       2016-12-28 14:53:43 +08:00
    @enenaaa 所以我说需要一个清楚的定义啊,然后讨论才有基础,在操作系统层面的同时那就是针对 CPU cycle ,在网络层面的话,那就复杂多了,只要是共享介质的,都不可能有真正的同时
    enenaaa
        147
    enenaaa  
       2016-12-28 14:59:16 +08:00
    @SoloCompany 所以我不知道你要表达啥。 我上面强调了两遍 @popstk 的问题跟执行层面无关。
    Showfom
        148
    Showfom  
       2016-12-28 15:00:45 +08:00
    又不是每个人都是全才 C++编程的不懂服务器不是很正常
    popstk
        149
    popstk  
       2016-12-28 15:18:17 +08:00
    @enenaaa
    我一直以为 accept 以后, client 的端口是新分配的, server 也会分配一个新的端口
    刚刚试了下, accept 返回的套接字的本地端口就是监听端口,对端端口是随机分配
    我明白了~
    eightqueen
        150
    eightqueen  
    OP
       2016-12-28 15:34:37 +08:00
    @Yc1992 失去了才知道珍惜
    njutree
        151
    njutree  
       2016-12-28 16:27:32 +08:00   ❤️ 1
    很正常的,以前遇到一个斯坦福的计算机硕士连 ip 地址和 mac 地址都搞混了;每个人的关注点可能不一样,能虚心学习就好。
    keysona
        152
    keysona  
       2016-12-28 16:39:41 +08:00
    楼主这以偏盖全的能力不错。

    你真了解过他,就应该明白他是搞 gui 这一块的。

    看到楼上的回复,

    “编程水平,网络编程,大学学过,进微软”

    笑死。

    你打脸我觉得没啥问题,说 真实水平 就太过分了。
    zhujian198
        153
    zhujian198  
       2016-12-28 16:40:11 +08:00
    做一名安静的吃瓜群众
    zhaixiaohu
        154
    zhaixiaohu  
       2016-12-28 16:41:22 +08:00
    图片看不到啊,重新发下
    eightqueen
        155
    eightqueen  
    OP
       2016-12-28 16:59:13 +08:00   ❤️ 1
    @keysona 我言语上有点过激,我承认。但是一个人受得起多大的赞美,就要经得起多大的诋毁。无论你认不认同,这是互联网的金科玉律。轮子哥自视甚高,一堆吃瓜群众又把他捧成中国顶尖 c++程序员,实际水平可能也就相当于阿里 p6.总之,把逼装大了,就要考虑被打脸的风险。
    popstk
        156
    popstk  
       2016-12-28 17:07:53 +08:00
    @julyclyde
    搜了一圈,这也算是个常见的误解,平时用 api 都没留意
    问下什么书或者标准提到了这个 accept 的行为?

    Adherents of the new-random-port theory
    http://stackoverflow.com/questions/22934856/how-many-tcp-conections-on-different-ports-a-sever-can-handle
    shiweifu
        157
    shiweifu  
       2016-12-28 17:08:56 +08:00
    附上轮子哥的博客:
    http://www.cppblog.com/vczh
    poorcai
        158
    poorcai  
       2016-12-28 17:15:33 +08:00 via Android
    不必揪着一个问题,他的水平当然可以完爆很多 cpp 程序员。
    jsl
        159
    jsl  
       2016-12-28 19:47:48 +08:00   ❤️ 2
    这个轮子哥早就能看出来是个嘴炮,稍微有点水平的人懒得理他而已,真正的高手哪有那么闲长年累月不知疲倦的在网上为了各种无聊的小问题跟人凶狠撕逼的,其实人的水平不行没什么,喜欢装逼也没什么,关键是这位轮子哥的人品很差,说他什么术业有专攻懂点桌面软件 I 的估计是经常看到这位轮子哥整天跟一帮搞易语言的小学生们撕逼就觉得他在这方面很牛逼吧,其实他在桌面软件方面也同样是个草包,一瓶子不满半瓶子晃荡,他就属于半瓶子晃荡的那种,另外谁说客户端开发不用懂网络编程的基础知识的,写过客户端吗?!
    zgqq
        160
    zgqq  
       2016-12-28 19:59:01 +08:00
    @jsl 这一句我就不爽了,草包能在微软?那你是什么包?
    jsl
        161
    jsl  
       2016-12-28 20:08:40 +08:00   ❤️ 1
    @zgqq 一言不合就不爽?!这个倒很像轮子的风格,别人发表观点没有义务保证让你爽或不爽,太脆弱就少上网多看书,整天拿“在微软”给自己脸上贴金也许你自己觉得很牛逼,但我真心觉得非常搞笑。至于轮子君是不是草包这根本无需争论,很明显的事。
    qian19876025
        162
    qian19876025  
       2016-12-28 20:14:28 +08:00
    就一个普通人而已 至于 诸位上升到红卫兵的水平么 。。。。。
    onlyhot
        163
    onlyhot  
       2016-12-28 20:39:32 +08:00 via iPhone
    都这么闲?
    wingyiu
        164
    wingyiu  
       2016-12-28 20:45:56 +08:00
    没人提最大文件描述符问题吗
    /proc/sys/fs/file-max
    lydhr
        165
    lydhr  
       2016-12-28 21:16:47 +08:00
    是图跪了吗
    xi_lin
        166
    xi_lin  
       2016-12-28 21:18:44 +08:00
    监听用一个端口传输用另一个端口好像 ftp 协议是这样干的?
    julyclyde
        167
    julyclyde  
       2016-12-28 22:12:02 +08:00
    @popstk 不需要讲解啊,正常理解下来就是正确的结果。不知道谁把整个行业带跑了……
    julyclyde
        168
    julyclyde  
       2016-12-28 22:13:23 +08:00
    @xi_lin ftp 是这样,不过人家在协议里有“通知对方”这个功能。而且 ftp 比 TCP “上层次”
    SoloCompany
        169
    SoloCompany  
       2016-12-29 00:15:06 +08:00
    @xi_lin ftp 是这样的,但同样不会有 64k 问题,没有规定说传输用的 socket 选择的随机端口不能相同,最后还是回到四元组问题上
    bestie
        170
    bestie  
       2016-12-29 00:27:08 +08:00
    @jsl 不知道你的水平如何?
    realpg
        171
    realpg  
       2016-12-29 00:34:52 +08:00
    上礼拜一个清华 CS 研究生(未毕业)跟我讨论能不能封掉网站黑名单客户的 MAC 地址实现不让他访问我们网站的效果
    顿时毁三观
    20150517
        172
    20150517  
       2016-12-29 00:41:28 +08:00
    @SoloCompany dig 怎么能看绑了多少 IP?我试了下,只显示一个 IP 啊,这是 DNS 啊,和端口什么关系了?
    mdjxyz
        173
    mdjxyz  
       2016-12-29 00:41:35 +08:00
    进一家公司你的强项足够强就够了,人家进微软表明了人家在某些方面足够强。
    你基础可能够好,但是没有好到让你进到微软。
    20150517
        174
    20150517  
       2016-12-29 00:49:28 +08:00
    我觉得其实他说的东西是以前旧的 FTP 上的东西,以前 FTP 就有个 passive FTP 的讲法,就是连接上了,然后换个端口再和你连接,这种情况下确实只有 65535 个连接,现在 http 不存在这问题的
    hebeiround
        175
    hebeiround  
       2016-12-29 08:17:57 +08:00 via iPhone   ❤️ 1
    苍蝇嗡嗡嗡,不是说微软的都牛逼,但是在微软还牛逼的那是真牛逼。
    mz02005
        176
    mz02005  
       2016-12-29 08:43:41 +08:00
    这里充满了搬砖工对设计师的不屑( ̄_, ̄ )
    kutata
        177
    kutata  
       2016-12-29 09:47:29 +08:00
    @radiolover 神回复... 🙄
    jsl
        178
    jsl  
       2016-12-29 10:37:44 +08:00   ❤️ 2
    被人骂不要只是怨天尤人,轮子君自己恰恰最不懂得术业有专攻的道理,很喜欢揪别人的小辫子,而且每次都很兴奋,所谓“网红”真是到哪都自带一群捧臭脚和洗地的,而且辣么的盲目。无意看到一篇吹捧轮子君的大长篇,好象是什么他妈妈哼了个摇篮曲然后他兴奋的手舞足蹈什么的没兴趣仔细看,于是他就觉得自己是天才这些只有他自己才知道的无聊的故事,很自我膨胀的样子。其实这种名不见经传的小角色谁关心你这些无聊的小事。

    另外这不能算是“基础”,而是一个“常识”,不懂常识叫“无知”而不是叫“术业有专攻”,水平不是问题,不懂还要硬装逼好为人师,人品才是问题,大家觉得笑尿了,是觉得他后面越抹越黑的狡辩,以及恼羞成怒的删评论好笑。其实大大方方的承认错误谁会去笑他?!
    m31271n
        179
    m31271n  
       2016-12-29 12:06:51 +08:00
    > 术业有专攻。莫以彼之短比己之长。

    现在我也不知道怎么开起重机。
    TaMud
        180
    TaMud  
       2016-12-29 13:53:44 +08:00
    如果你们认识这个人,表示你们也很 low 了

    本人表示,不认识这个人
    egoate
        181
    egoate  
       2016-12-29 20:56:45 +08:00
    eightqueen
        182
    eightqueen  
    OP
       2016-12-29 21:16:10 +08:00
    @egoate 霸道柴总微微一笑?
    xcv58
        183
    xcv58  
       2016-12-30 09:03:19 +08:00 via iPhone
    @jsl 👍
    husinhu
        184
    husinhu  
       2016-12-31 00:28:05 +08:00 via iPhone
    楼主 知乎上这个回复我是标明不能转载的文章 请删除此贴。 @Livid
    xi_lin
        185
    xi_lin  
       2017-01-03 12:42:58 +08:00
    @julyclyde 了解了~
    xi_lin
        186
    xi_lin  
       2017-01-03 12:44:27 +08:00
    @SoloCompany 学习啦~
    qgbcs1
        187
    qgbcs1  
       2017-05-03 01:29:24 +08:00
    @hellodigua 害怕
    1  2  
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   3273 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 34ms · UTC 00:42 · PVG 08:42 · LAX 16:42 · JFK 19:42
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.