V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
推荐学习书目
Learn Python the Hard Way
Python Sites
PyPI - Python Package Index
http://diveintopython.org/toc/index.html
Pocoo
值得关注的项目
PyPy
Celery
Jinja2
Read the Docs
gevent
pyenv
virtualenv
Stackless Python
Beautiful Soup
结巴中文分词
Green Unicorn
Sentry
Shovel
Pyflakes
pytest
Python 编程
pep8 Checker
Styles
PEP 8
Google Python Style Guide
Code Style from The Hitchhiker's Guide
jxwho
V2EX  ›  Python

同一个局域网下的 socket 无法通信

  •  
  •   jxwho · 2014-04-15 13:22:03 +08:00 · 4486 次点击
    这是一个创建于 3876 天前的主题,其中的信息可能已经有所发展或是发生改变。
    请问, 同一个局域网下的socket无法通信的原因可能是什么?

    我想让我的电脑跟虚拟机用socket通信,虚拟机用了一个无线网卡,但是总是失败,无法连接,我查了端口,应该都打开了,请问可能的原因会是什么?

    谢谢!
    13 条回复    1970-01-01 08:00:00 +08:00
    Panic
        1
    Panic  
       2014-04-15 14:43:51 +08:00
    wireshark抓包试试,太不详细了
    rebornix
        2
    rebornix  
       2014-04-15 17:44:39 +08:00
    还是得抓包看一下,connection无法建立,得确认是电脑包没发出去还是虚拟机包没能返回回来。
    wy315700
        3
    wy315700  
       2014-04-15 17:53:36 +08:00
    先看看能不能ping通吧
    ETiV
        4
    ETiV  
       2014-04-15 19:25:22 +08:00
    同LS...

    ping不通就改虚拟机配置里的网卡项.
    wangyongbo
        5
    wangyongbo  
       2014-04-15 22:20:06 +08:00
    这个跟socket 无关。肯定是网络配置问题。
    jxwho
        6
    jxwho  
    OP
       2014-04-15 23:10:59 +08:00
    @wy315700 直接ping主机的地址吗?端口要说明吗?

    @ETiV 现在是NAT, 要改成什么吗?

    @wangyongbo 这个可以怎么发现要怎么改?


    我又试了一下,在两台mac之间建立socket,但是也不成功,,没有开防火墙,
    jxwho
        7
    jxwho  
    OP
       2014-04-15 23:53:39 +08:00
    @Panic
    @rebornix
    这个,,,请问怎么抓到相应的包?
    11138
        8
    11138  
       2014-04-16 00:21:12 +08:00
    1,楼上几位都说得很清楚了,让你确定一下两台机是否通的,简单来说就是互ping一下看看,然后跟大家说一下结果。
    2,直接上代码。
    rebornix
        9
    rebornix  
       2014-04-16 10:02:41 +08:00
    @jxwho 看你使用的是什么系统啦,如果是*inx,tcpdump可以监听所有协议的package。

    如果是windows,安装wireshark,有GUI一玩就会~
    jxwho
        10
    jxwho  
    OP
       2014-04-16 16:16:08 +08:00
    @rebornix 其实是怎么找到对应的包?source and destination?
    jxwho
        11
    jxwho  
    OP
       2014-04-16 16:17:20 +08:00
    我现在让两个虚拟机在建立的NAT Network下,就可以正常工作了...但是奇怪的是,同一个网络下的两部Mac不能socket成功,防火墙关了.
    luoqeng
        12
    luoqeng  
       2014-04-16 18:08:56 +08:00
    你没弄懂VMware的网络工作模式,桥接 NAT HOST 之间的区别搞清楚了就行了,去网上搜搜吧。

    简单的解释 :
    桥接相当于把虚拟机直接插在交换机上。
    NAT还是用真实主机的IP去通信,所以要其他局域网主机访问需做端口映射。
    HOST基本上就是只能和自己的真实主机通信了 。
    jxwho
        13
    jxwho  
    OP
       2014-04-17 05:05:29 +08:00
    @luoqeng 这个我知道了,但是现在问题在于,两台独立的机器在同一个网络下也ping不通...没开防火墙
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   2648 人在线   最高记录 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 31ms · UTC 10:54 · PVG 18:54 · LAX 02:54 · JFK 05:54
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.