当前位置: 代码迷 >> 综合 >> uefi stdlib socket 实现
  详细解决方案

uefi stdlib socket 实现

热度:38   发布时间:2023-12-14 22:26:18.0


标准库 调用的是: StdLib\EfiSocketLib\Socket.c
stdlib  起一个桥梁作用,实质还是调用 MdeModulePkg\Universal\Network\Tcp4Dxe

bind  最主要就是做了一次标记:
      //
      //  Mark this socket as bound if successful
      //
      if ( !EFI_ERROR ( Status )) {
        pSocket->State = SOCKET_STATE_BOUND;
        pSocket->errno = 0;
      }


listen 的实现在EslSocketListen
d:\ets-poccc\StdLib\EfiSocketLib\Socket.c 2587

其实质是调用 
         //
          //  Initiate the connection attempt listen
          //
          Status = pSocket->pApi->pfnListen ( pSocket );


          如果没有出错, 则标记为listen state 

最终还是用的:
d:\ets-poccc\MdeModulePkg\Universal\Network\Tcp4Dxe\Tcp4Main.c
Tcp4Accept()


accept 就是拿到远程的地址信息

receive 拿到存放数据的地址, 从一个个包里面拿出内容

  相关解决方案