将应用程序从 RHEL5 移植到 Solaris 8。setsockopt(kinet[inst_id].sock_no,SOL_TCP,TCP_NODELAY,&option,sizeof(option)); 会导致编译错误,因为 SOL_TCP 未在 Solaris 8 中的 /usr/include/sys/socket.h 中定义,而 RHEL5 中则有定义。
答案1
SOL_TCP 不可移植,但通过添加以下内容,您似乎可以让它在 Solaris 和其他平台上运行:
#ifndef SOL_TCP
#define SOL_TCP IPPROTO_TCP
#endif