• 请不要在回答技术问题时复制粘贴 AI 生成的内容
xoxo419
V2EX  ›  程序员

Python -socket 如何给某个已连接的客户端发消息?

  •  
  •   xoxo419 · Oct 23, 2017 · 6099 views
    This topic created in 3158 days ago, the information mentioned may be changed or developed.

    硬件设备与服务端保持连接, 当用户操作 APP 发送消息给服务器. 服务器是怎么找到指定的连接给发给设备的?

    8 replies    2017-10-24 15:47:46 +08:00
    janxin
        1
    janxin  
       Oct 23, 2017
    往指定连接发消息即可。至于指定连接怎么存的,就看你的结构了,一般都要有个 SessionManager 之类的东西
    NoAnyLove
        2
    NoAnyLove  
       Oct 24, 2017
    addr:port 就是识别连接的方式。建议看一下基础的网络编程书籍。
    lieh222
        3
    lieh222  
       Oct 24, 2017
    字典,连接标识作为 KEY,connection 对象作为 value,要操作某个连接的时候通过 key 把 connection 取出来就行了
    xoxo419
        4
    xoxo419  
    OP
       Oct 24, 2017
    @lieh222 #3 如果掉线了呢, 是不是不用自己做字典来存的, 而是内存里就有这样连接对象.
    julyclyde
        5
    julyclyde  
       Oct 24, 2017
    @xoxo419 你总得用一个什么东西存起来。如果没有任何引用,python 会 gc 掉这个对象的
    fyyz
        6
    fyyz  
       Oct 24, 2017
    一个 TCP 连接由四个值决定,分别是客户端 IP,客户端端口,服务端 IP,服务端端口。

    客户端 IP,服务端 IP 都是在 IP 包里的字段。
    客户端端口,服务端端口都是 TCP 报文里的字段。

    当收到一个 TCP 数据包后,TCP 的会从 TCP 协议栈里找这个客户端 IP,客户端端口,服务端 IP,服务端端口。找到以后就继续通信,没有就拒绝,除非你是 SYN 包,那我就跟你建立起连接。
    hcnhcn012
        7
    hcnhcn012  
       Oct 24, 2017 via iPhone
    连接池?
    oncew
        8
    oncew  
       Oct 24, 2017
    一个 tcp 连接中 是一个 5 元组( tcp,sip,sport,dip,dport )依据这个 5 元祖就可以 唯一确定服务端与客户端对应的连接
    About   ·   Help   ·   Advertise   ·   Blog   ·   API   ·   FAQ   ·   Solana   ·   5883 Online   Highest 6679   ·     Select Language
    创意工作者们的社区
    World is powered by solitude
    VERSION: 3.9.8.5 · 78ms · UTC 03:17 · PVG 11:17 · LAX 20:17 · JFK 23:17
    ♥ Do have faith in what you're doing.