计算机通信的一点疑问 - V2EX
V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
ColorfulNight
V2EX    Java

计算机通信的一点疑问

  •  
  •   ColorfulNight 2016 年 4 月 18 日 3372 次点击
    这是一个创建于 3659 天前的主题,其中的信息可能已经有所发展或是发生改变。

    服务器有公网 IP ,客户端通过路由器拨号上网,使用静态的 IP 地址,现在客户端要和服务器通信,要求能发送信息到服务器,并且要能接收到服务器发来的信息,用 Socket 怎么实现? 我在网上找到两种说法: 1.客户端先发起 Socket 链接,只要不断开,两边都可以互相通信。 2.需要在客户端链接的路由器进行端口映射,即路由器指定一个端口,只要这个端口收到的信息都发回到指定客户机。 我的问题是: 1.第一种说法是对的么? 2.第二种的 Socket 和第一种有什么区别? 3.还有更简单的么?

    6 条回复    2016-04-19 02:29:23 +08:00
    hpeng
        1
    hpeng  
       2016 年 4 月 19 日 via iPhone   1
    1 讲道理, socket server 应该放在服务端,是服务端等客户端链接。然后自己解析流。
    2 这两个不是一个东西。那个叫 DMZ 。
    3 有,用上层的 http 。
    ColorfulNight
        2
    ColorfulNight  
    OP
       2016 年 4 月 19 日
    @hpeng 意思就是两边都有 Socket 嘛,服务器是一直运行着 Socket 等待客户端发来请求,然后就可以一直通信,不需要调试路由器了,我这样理解对嘛?
    Marfal
        3
    Marfal  
       2016 年 4 月 19 日
    @hpeng 好像不叫 DMZ 吧,叫 UPnP
    ColorfulNight
        4
    ColorfulNight  
    OP
       2016 年 4 月 19 日
    @Marfal 这些技术都有看到,似乎都可以,还有个 NAT ?
    pimin
        5
    pimin  
       2016 年 4 月 19 日   1
    @ColorfulNight
    1.是对的
    确实不用调试路由了
    实际上工作是路由自动完成的
    因为这就是路由的基本功能
    消息的分发
    即便两台都是在 Internet 上暴露的主机,互相发送消息也要经过运营商骨干网的 N 多路由,并不是想象的直连.

    2.第二种和第一种在你这个场景里没有区别
    如果做了映射,客户端和服务端的角色可以做调换
    主要好处是任意一方都可以主动连接另外一方
    缺点嘛就是安全

    3.最简单的就是把双方用一根网线连起来,不用路由,直连.
    Starduster
        6
    Starduster  
       2016 年 4 月 19 日   1
    @ColorfulNight
    NAT 是网络地址转换,简单的说和 DMZ 也好 UPnP 也好是不同的东西,
    举个例子,
    本地 192.168.1.102 (路由器 NAT ) 运营商给你的内网 IP 地址如 10.1.1.100 (运营商 NAT )公网出口如 182.138.98.37 。
    这个过程叫网络地址转换,运营商使用这个技术主要目的是节省 IPV4 地址,也使得内网设备对外不可见,引起的一个问题是你无法主动连接一个在 NAT 内部的主机,比如 Internet 上的其他人不能穿过路由器直接和你路由器下 192.168.1.102 的主机进行通信,那么 DMZ 或者端口转发这样的技术可以用来解决这个问题,你说的 2 实际上就是这种东西
    关于     帮助文档     自助推广系统     博客     API     FAQ     Solana     2220 人在线   最高记录 6679       Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 38ms UTC 00:37 PVG 08:37 LAX 17:37 JFK 20:37
    Do have faith in what you're doing.
    ubao msn snddm index pchome yahoo rakuten mypaper meadowduck bidyahoo youbao zxmzxm asda bnvcg cvbfg dfscv mmhjk xxddc yybgb zznbn ccubao uaitu acv GXCV ET GDG YH FG BCVB FJFH CBRE CBC GDG ET54 WRWR RWER WREW WRWER RWER SDG EW SF DSFSF fbbs ubao fhd dfg ewr dg df ewwr ewwr et ruyut utut dfg fgd gdfgt etg dfgt dfgd ert4 gd fgg wr 235 wer3 we vsdf sdf gdf ert xcv sdf rwer hfd dfg cvb rwf afb dfh jgh bmn lgh rty gfds cxv xcv xcs vdas fdf fgd cv sdf tert sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf sdf shasha9178 shasha9178 shasha9178 shasha9178 shasha9178 liflif2 liflif2 liflif2 liflif2 liflif2 liblib3 liblib3 liblib3 liblib3 liblib3 zhazha444 zhazha444 zhazha444 zhazha444 zhazha444 dende5 dende denden denden2 denden21 fenfen9 fenf619 fen619 fenfe9 fe619 sdf sdf sdf sdf sdf zhazh90 zhazh0 zhaa50 zha90 zh590 zho zhoz zhozh zhozho zhozho2 lislis lls95 lili95 lils5 liss9 sdf0ty987 sdft876 sdft9876 sdf09876 sd0t9876 sdf0ty98 sdf0976 sdf0ty986 sdf0ty96 sdf0t76 sdf0876 df0ty98 sf0t876 sd0ty76 sdy76 sdf76 sdf0t76 sdf0ty9 sdf0ty98 sdf0ty987 sdf0ty98 sdf6676 sdf876 sd876 sd876 sdf6 sdf6 sdf9876 sdf0t sdf06 sdf0ty9776 sdf0ty9776 sdf0ty76 sdf8876 sdf0t sd6 sdf06 s688876 sd688 sdf86