viator42
V2EX  ›  Android

看 android 招聘几乎每一个都要求熟悉 socket 编程,实际上这个用的有这么多么?

  •  
  •   viator42 · Nov 6, 2016 · 18591 views
    This topic created in 3475 days ago, the information mentioned may be changed or developed.
    个人认为做 App 网络访问感觉还是 http 方便,自己做的项目也是用的 http 。感觉这应该是 HR 不懂从别的地方抄来的
    22 replies    2016-11-14 22:17:25 +08:00
    tscat
        1
    tscat  
       Nov 6, 2016
    我也觉得 http 方便。。
    但是和业务相关吧,有的业务,比如聊天,还是 socket 这样的比较好。
    如果只是开发 xx 商场,那基本上还是 http 好用的
    bookit
        2
    bookit  
       Nov 6, 2016
    我精通 socket 编程,各种情况都处理过

    为 socket 层增加过异步机制,为系统增加 ssl 功能

    但,实际上多数人用不到这个
    neoblackcap
        3
    neoblackcap  
       Nov 6, 2016
    看情况,如果跟通讯相关,实时性要求高的可能会用到,比如直播,聊天之类的。你总不可能每隔一段时间就去轮询服务器吧?
    tomczhen
        4
    tomczhen  
       Nov 6, 2016
    个人觉得,如果楼主真的很了解 http 协议的话就不会发这种问题了。:doge:
    viator42
        5
    viator42  
    OP
       Nov 6, 2016
    @neoblackcap IM ,音视频流这些肯定是需要 socket 的。只是获取数据就没必要了吧
    snnn
        6
    snnn  
       Nov 6, 2016
    做游戏的要用。
    huihui123
        7
    huihui123  
       Nov 6, 2016 via iPhone
    可能工作中用不到,理解下还是应该的,比如一些网络编程上的思路。
    kozora
        8
    kozora  
       Nov 6, 2016
    IM 业务
    miketeam
        9
    miketeam  
       Nov 6, 2016 via iPhone   ❤️ 2
    很少用到。平时都有备份 socket 代码的,需要用的时候 copy 。另外 fb 开源了一个 socket 框架。蛮好的。其实我也不明白为什么要写哪些东西。 socket 使用的地方就是你觉得需要轮询的地方!前端(说 app 开发属于前端过分吗?)面试感觉应该致力于了解动画实现,流畅性,测试能力,数据库,调用硬件相关的功能,处理文档,缓存,图形图像, 2 维码,直播,加密解密,视频解码,解析 json , xml , html ,页面排版,富文本相关,线程, iOS 里面有 runtime 和 runloop ,安卓不知道是什么,然后合作开发相关的就是文档编写, git 使用,那么更高级的应该考察混编的能力,就是混合 c , c++,周边相关的可以考察 python ,对于其他的比如分享好友圈啊,支付啊那只不过是加个三方库而已,没什么说的。
    raysonx
        10
    raysonx  
       Nov 7, 2016 via Android
    这不是基础吗?换我面试我也会问。
    kaedea
        11
    kaedea  
       Nov 7, 2016
    这个又不是很深的东西,网络编程是计算机基础…
    kaichen
        12
    kaichen  
    PRO
       Nov 7, 2016
    其实金融类的行情更新,做拍卖或者秒杀的场景也需要用到。
    zhouquanbest
        13
    zhouquanbest  
       Nov 7, 2016
    招聘贴也是有模板的
    实际上也就是要你有个基础 毕竟写过 Socket 和没写过还是有很大差别 遇到特定场景也能救个火
    我记得大学时计算机网络的课设就是用 socket+gtk 写个 Linux 上的类 QQ im demo ,造出来后还是觉得受益匪浅的,即使现在写 Android 基本直接用 OkHttp ,遇到些坑有以前那点经验也蛮方便解决
    vjnjc
        14
    vjnjc  
       Nov 7, 2016
    同意楼上,招聘的 HR 写要求的时候都是拷贝粘贴的!!所以大部分 JD 看不出什么。
    lishunan246
        15
    lishunan246  
       Nov 7, 2016 via Android
    网游基本上都得用 socket
    zcljy
        16
    zcljy  
       Nov 7, 2016
    内网通信 http 显然不行啊。还得是大 socket
    timestamp
        17
    timestamp  
       Nov 7, 2016
    有的招聘信息感觉不是负责人编的,反正我们以前公司是这样
    sampeng
        18
    sampeng  
       Nov 7, 2016
    1.hr 是 copy 的。但是 copy 的招聘主管的需求。
    2.如果我面试,虽然不用 socket ,但是要答不上来,直接就 pass 了。。就像你会做微积分,但是加减做不好一样的道理。。。。
    LancerXin
        19
    LancerXin  
       Nov 7, 2016
    别的公司不知道,反正我们公司是需要的,因为的确用到了。
    ibigbug
        20
    ibigbug  
       Nov 14, 2016
    > App 网络访问感觉还是 http 方便

    你说方便,你觉得 HR 不懂,你懂。那么如果问你知道 HTTP 的 keep alive 怎么实现,你怎么回答?

    你说说 HTTP 和 「 socket 」 的区别是啥?
    viator42
        21
    viator42  
    OP
       Nov 14, 2016 via Android
    @ibigbug 不停地发心跳包或者长链接
    HTTP 和 socket 都是基于 TCP 的连接。 HTTP 连接传输的是超文本,一方作为客户端另一方作为服务端实现单向的请求响应。 socket 传输的是字节流,传输的双方都可以作为服务端和客户端实现双工通信。
    答完了
    ibigbug
        22
    ibigbug  
       Nov 14, 2016
    @viator42 第一句答错啦, HTTP 的 keepalive 没有心跳,只是一次 req-res 结束之后不去 socket.close()

    至于你说 socket 是基于 TCP ,那我 UDP 算啥? HTTP 传输的是超文本,那我上传图片是超文本么? 什么是超?

    TCP 不能一方作为客户端一方作为服务端?

    你认为通过网络传输的除了字节流还有什么其他东西么?

    HTTP 2 也能双工哦~

    你好像一句都没说对~
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5780 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 138ms · UTC 06:30 · PVG 14:30 · LAX 23:30 · JFK 02:30
    ♥ Do have faith in what you're doing.