从理论上讲,没有什么可以阻止将TCP套接字与SOCK_DGRAM一起使用。您将获得可靠的数据报传输。使用Berkeley插座可以吗?
您要看的是SCTP协议。它提供了通过可靠的TCP样式连接发送数据报的功能:
与TCP相比,SCTP可以被描述为面向记录的,这意味着它以消息的形式传输数据,类似于用户数据报协议(UDP),因此在一个传输操作中发送了一组字节(消息) (记录)在接收方应用程序中与该组完全相同地读取。TCP是面向流的,传输字节流,在无序传送的情况下,它可以正确地重新排序。但是,它不遵守消息边界,即,按照发送方原始传输单位的数据结构。
看一下SCTP一对一的样式连接,这可能正是您想要的。
大多数Unix / Linux操作系统都有一些实现,而Windows则有一个第三方实现。有关详细信息,请参见我链接的Wiki文章的结尾。