zoukankan      html  css  js  c++  java
  • socket编程

    socket编程:
    socket是应用层与tcp/ip协议族通信的中间抽象层,它是一组接口,在设计模式中,socket其实就是一个门面模式,它把复杂的tcp/ip协议族隐藏在socket接口后面,对用户来说,一组简单的接口就是全部,让socket去组织数据,以符合指定的协议。所以,我们无需深入理解tcp/ip协议,socket已经为我们封装好了,我们值需要遵守socket的规定去编程,写出的程序自然就是遵循tcp/udp标准的。
    同一台主机进程间不能直接通信。

    套接字工作流程:

     

    内存分为用户态(存放应用程序代码)和内核态(存放操作系统代码的)。

    收发都是在自己的缓存区,接受的都是字节,和对方没关系,那是操作系统的事。

    队列是先进先出,栈是先进后出,接受消息用的是对列。

    基于udp的套接字:
    QQ聊天(由于udp是基于无连接的,所以一个服务器可以服务多个客户端)

    recv和recvfrom的区别:
    recv是基于tcp的,recvfrom是基于udp的。
    tcp:send发消息,recv收消息.
    udp:sendto发消息,recvfrom收消息。
    两个程序间的通信可以通过管道进行。
    粘包现象:粘包现象只发生在tcp通信中,udp中不存在粘包现象。

  • 相关阅读:
    crash reporting system for Windows applications
    1
    qt 试用 (3)配置编译源代码及调试
    kd tree & ray tracing
    new
    KMP算法中关于next数组的探究
    teamviewer vs echovnc
    NAT之stun确定nat类型
    Wireshark
    GNU httptunnel,当SSH被block时的选择
  • 原文地址:https://www.cnblogs.com/zypfzw/p/8971843.html
Copyright © 2011-2022 走看看