news 2026/3/20 14:44:38

37、套接字编程:SMI 实现与无连接套接字详解

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
37、套接字编程:SMI 实现与无连接套接字详解

套接字编程:SMI 实现与无连接套接字详解

1. SMI 的套接字实现

实现简单消息接口(SMI)的套接字版本是一件很有意思的事情,这样可以将其与其他五种实现方式进行对比。这里使用之前定义的 SSI 函数,而非直接调用各种与套接字相关的系统调用,使得实现工作变得较为简单。

1.1 SMIQ_SKT 结构

对于套接字,内部的SMIQ_SKT结构较为简单,因为跟踪客户端的工作由accept系统调用完成,并且 SSI 已经处理了很多细节:

typedef struct { SMIENTITY sq_entity; // entity SSI *sq_ssip; // structure for SSI struct client_id sq_client; // client ID size_t sq_msgsize; // msg size struct smi_msg *sq_msg; // msg buffer } SMIQ_SKT;
1.2 打开和关闭 SMIQ_SKT

打开SMIQ_SKT时,ssi_open完成了大部分工作:

SMIQ *smi_open_skt(const char *name, SMIENTITY entity, size_t msgsize) {
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!