V2EX = way to explore
V2EX 是一个关于分享和探索的地方
现在注册
已注册用户请  登录
V2EX 提问指南
coolair
V2EX  ›  问与答

Python 使用 Unix 套接字和 UDP 建立的服务端是不是没法回发数据给客户端啊?

  •  
  •   coolair · 2016-08-03 16:54:37 +08:00 · 1841 次点击
    这是一个创建于 2836 天前的主题,其中的信息可能已经有所发展或是发生改变。
    server = socket.socket(socket.AF_UNIX, socket.SOCK_DGRAM)
    data, addr = server.recvfrom(1024)

    这样获取的地址是空的,没法使用 sendto 发数据出去。
    19 条回复    2016-08-04 09:40:10 +08:00
    tinyproxy
        1
    tinyproxy  
       2016-08-03 21:18:17 +08:00 via iPhone   ❤️ 1
    第一个参数查文档
    coolair
        2
    coolair  
    OP
       2016-08-03 21:35:19 +08:00 via Android
    @tinyproxy 你这不是废话么?我没查文档来这问?你不会就不要回答!
    upczww
        3
    upczww  
       2016-08-03 21:47:18 +08:00 via Smartisan T1
    楼主有话好好说
    coolair
        4
    coolair  
    OP
       2016-08-03 22:10:15 +08:00 via Android
    @upczww 最讨厌看到这种"去查文档"、"去 google"这类的回答了。
    zjb861107
        5
    zjb861107  
       2016-08-03 22:24:11 +08:00
    支持 1 楼
    upczww
        6
    upczww  
       2016-08-03 22:33:30 +08:00 via Smartisan T1
    @coolair 楼主发帖是问别人问题的,如果别人的回答对你没有帮助,忽视之即可,但是不要喷人家,因为每个人的水平不一样,可能他觉得一看文档就看懂了呢?
    kkzxak47
        7
    kkzxak47  
       2016-08-03 22:37:23 +08:00 via Android
    A Unix domain socket or IPC socket(inter-process communication socket) is a data communications endpoint for exchanging data between processes executing on the same host operating system.

    the same host...same host... host...
    一楼的提示异常准确
    matthewgao
        8
    matthewgao  
       2016-08-03 22:38:46 +08:00
    @coolair 问问题么,就要虚心点,文档是要看的,但是基础知识也要看, UNIX socket 哪来的地址啊, UNIX socket 是 bind 到一个文件的
    ahcat
        9
    ahcat  
       2016-08-03 22:47:49 +08:00 via iPhone
    一楼点到即止,给了楼主自我学习的空间。楼主还骂人。
    coolair
        10
    coolair  
    OP
       2016-08-03 22:55:46 +08:00 via Android
    @matthewgao
    @kkzxak47
    @upczww 真心不知道哪错了。我看过文档了,也知道没地址,程序也测过了,我只是想问下是不是这种方式没办法回传数据,因为我认为是这样的。初学,网上看到的方式要么是 unix socket 和 tcp ,要么是 af_inet 和 udp ,至少地址和连接要一个,这样没有连接也没地址,我认为是不可以回传的。我只是想求证自己的想法而已,当然是看过文档,做过实验才来问的。
    choury
        11
    choury  
       2016-08-03 23:09:21 +08:00
    建议你看 man 7 unix
    sudo987
        12
    sudo987  
       2016-08-03 23:13:59 +08:00 via iPhone
    支持一楼。
    matthewgao
        13
    matthewgao  
       2016-08-04 00:19:35 +08:00
    @coolair Unix socket 当然可以回传,但是你要 bind 到同一个 unix socket 对应的文件上, UDP 没法回传,除非你 client 端也监听接受 server 端发来的 UDP 包

    可以 man 7 unix ,或者 http://man7.org/linux/man-pages/man7/unix.7.html 了解更多 unixsocket 的东西
    DoctorCat
        14
    DoctorCat  
       2016-08-04 01:43:30 +08:00
    lz 戾气太重,题外话,建议阅读经典《提问的艺术》 http://www.oschina.net/question/124879_45870
    jarlyyn
        15
    jarlyyn  
       2016-08-04 08:22:57 +08:00 via Android
    不喜欢一楼这种回答的话楼主应该花钱请私教
    abctest
        16
    abctest  
       2016-08-04 08:47:40 +08:00
    100 块,我教你。
    tinyproxy
        17
    tinyproxy  
       2016-08-04 09:24:01 +08:00 via iPhone
    @coolair 我告诉你哪个参数错了,再说我用手机回,还要我帮你查文档么
    coolair
        18
    coolair  
    OP
       2016-08-04 09:30:41 +08:00
    @tinyproxy 哪个参数错了?我问的是这种方式是不是不能回传数据给 client ,参数怎么错了?
    tinyproxy
        19
    tinyproxy  
       2016-08-04 09:40:10 +08:00 via iPhone
    @coolair 中间回复没注意到,我以为你就想收数据。上面好多人说了 unix socket ,我也不说啥了。
    关于   ·   帮助文档   ·   博客   ·   API   ·   FAQ   ·   实用小工具   ·   6175 人在线   最高记录 6543   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 33ms · UTC 02:15 · PVG 10:15 · LAX 19:15 · JFK 22:15
    Developed with CodeLauncher
    ♥ Do have faith in what you're doing.