zoukankan      html  css  js  c++  java
  • socket tcp

    ■  TCP 代码结构

    参考:

     https://blog.csdn.net/qq_33951180/article/details/68066634

    ■ socket-client

        • 创建socket

              socket-client.c -> pa_socket_client_new_unix() ->  socket(PF_LOCAL, SOCK_STREAM, 0)

        • connect

              socket-client.c -> do_connect() -> connect(c->fd, sa, len)

         • read/write

              socket-client.c ->do_call() -> io = pa_iochannel_new(c->mainloop, c->fd, c->fd) 

              iochannel.c -> pa_iochannel_new() -> m->source_io(m, ifd, PA_MAINLOOP_API_IO_EVENT_BOTH, callback, io) -> io->callback(io, io->userdata)

              pstream.c -> pa_pstream_new() -> pa_iochannel_set_callback(io, io_callback, p) -> io_callback() -> do_something() -> do_write()-> pa_iochannel_write() -> write()

                                                                                                                                                                                                        -> do_read()-> pa_iochannel_read() -> read() 

      ■ socket-server

        • 创建socket

           socket-server.c ->pa_socket_server_new_unix() -> socket()

        • 绑定socket

           socket-server.c ->pa_socket_server_new_unix() -> bind() 

        • listen socket

            socket-server.c ->pa_socket_server_new_unix() -> listen() 

        • accept socket

            socket-server.c ->callback() -> accept() 

        • read/write

            socket-server.c ->callback() ->pa_iochannel_new(s->mainloop, nfd, nfd)

            module-protocol-stub.c -> protocol_new ()

              #define protocol_new pa_protocol_native_new

            protocol-native.c-> pa_socket_server_set_callback(p->server, on_connection, p) -> pa_pstream_new(p->core->mainloop, io)-> io_callback() -> do_something() -> do_write()-> pa_iochannel_write() -> write()

                                                                                                                                                                                                                                                                          -> do_read()-> pa_iochannel_read() -> read() 

  • 相关阅读:
    Network Embedding 论文小览
    DLRS(深度学习应用于推荐系统论文汇总--2017年8月整理)
    深度语义匹配模型-DSSM 及其变种
    python 按值排序
    python 日期排序
    推荐领域数据集
    EPS 转 pdf 在线
    梯度下降法的三种形式BGD、SGD以及MBGD
    Daily paper -Science 2006: Experimental Study of Inequality and Unpredictability in an Artificial Cultural Market (探究群体行为对商品销量的影响)
    2017年Nature文章“Millions of online book co-purchases reveal partisan differences in the consumption of science”阅读笔记
  • 原文地址:https://www.cnblogs.com/renhl/p/14018779.html
Copyright © 2011-2022 走看看