C网络编程?

4
什么库(从性能角度)在Windows和UNIX上用C进行网络编程最好?
我对高频交易非常感兴趣。
我听说过BSD和POSIX,但不确定是否有更快的性能特定库?

1
你的需求是什么?你已经证明操作系统提供的网络设施不满足这些需求了吗? - Greg Hewgill
1
操作系统提供的网络功能非常能够满足千兆以太网连接的需求。你的互联网连接速度有多快? - Paul Tomblin
1
什么是由操作系统提供的网络设施?我想用C语言编写一些客户端-服务器演示程序,我的理解是原始的C标准不包含任何网络库,所以我需要使用其他东西(例如bsd,POSIX等),至少在Windows情况下是这样吗?我对UNIX还不确定。 - user997112
1
C标准没有提供网络库 - 这是真的。但如果你在类Unix平台上工作,'标准'(即由操作系统提供的)库将包括BSD套接字,并且这些套接字将为您提供良好的性能。在Windows上,可能有完全不同的接口(WinSock?)。或者您可以使用Cygwin或Mingw来提供BSD套接字。它们都很可能表现得足够好。 - Jonathan Leffler
可能是重复的问题,请参考链接 - cyber_raj
显示剩余2条评论
2个回答

6
最快的方法是使用操作系统的网络功能:socket()setsockopt()connect()listen()send()recv()等等。
在几个操作系统中,它们之间存在微妙的差异。
为了应对这种情况,在几个库中都有对它们的封装,例如在Qt中(至少我记得如此)。如果您使用它们,我认为没有什么会明显地变慢...

嗨,我只需要包含windows.h文件就可以访问它们了吗? - user997112
我想是这样,但我不确定。不怎么在Windows下编程。 - glglgl
这种低级网络编程的绝佳资源是http://beej.us/guide/bgnet/。内容主要集中在Unix,但也有一些关于在Windows中使用的评论。 - Kenneth Wilke

0

关于ZeroMQ怎么样?[http://www.zeromq.org/][1]

它更快,编码更简单,也可以用作消息队列。


你应该提及一些可用的多个选项,而不是只强调一个。 - Joshua Briefman

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接