套接字编程: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)
{
超级会员免费看
订阅专栏 解锁全文
4917

被折叠的 条评论
为什么被折叠?



