【发布时间】:2010-09-09 20:12:26
【问题描述】:
我是一名初级 C++ 程序员/网络管理员,但我认为如果有人指出我正确的方向,我可以学习如何做到这一点。大多数教程都是使用由于某种原因不再有效的旧代码进行演示的。
由于我在 Linux 上,我只需要解释一下如何编写原始伯克利套接字。谁能帮我快速介绍一下?
【问题讨论】:
-
Beej's network guide 几乎是 linux 环境中与基本网络相关的任何事物的黄金标准。这很简单,我不能更强烈地推荐它。
-
RAW 套接字非常棘手,在不同的系统上略有不同。我只知道人们使用它们来编码嗅探器(如
wireshark)和一些相当神秘的诊断。他们当然不是开始学习套接字编程的好地方。在大多数情况下,“我是 C++ 初学者/网络管理员”的意思是“远离 SOCK_RAW”。 -
@ChuckKollars,我不同意。我认为学习原始套接字是学习 C++,尤其是 C 的好方法。使用库是一回事,但是 Linux 的原始套接字是一种非常有见地的体验。 C++ 可以做很多独特的事情。我认为避免你暗示的心痛是一个错误。
-
你到底有什么系统? “原始”套接字实现从一个系统到下一个系统有很大不同,因此您学到的东西(实际上主要是关于系统,而不是关于 C++)不会在其他地方延续。
-
@ChuckKollars,这是真的;我更多地指的是结构的大量使用,而不是代码的可移植性。
标签: c++ c sockets networking tcp