Linux网络编程.我能从什么开始?

Mak*_*zin 8 c c++ linux network-programming

我最近对Linux网络编程感兴趣并阅读了很多(Beej的网络编程指南).但现在我很困惑.我想写一些东西来练习,但我不知道到底是什么.可以请一些项目开始给我推荐吗?

谢谢.

小智 6

写一个非常简单的愚蠢Web服务器,它将接受端口80上的连接并提供后台页面.

然后你可以扩展它以支持其他媒体下载(图像等).

然后你可以添加一些(预建的)脚本语言解释器,它将处理PHP,Perl等页面.

你会在这个过程中学到很多东西.

  • 除此之外,不要试图在端口80上侦听.这需要特权.在端口8000上列出.对于初学者来说稍微简单一些. (5认同)

Jac*_*ack 5

我首先要开发一个像tic-tac-toe这样的简单多人游戏:

  • 使用ncurses(轻松编程你的gui)
  • 管理玩家可以加入的大厅
  • 管理游戏(由要求玩另一个的玩家开始)
  • 管理阶梯或排名
  • 为所有加入的人管理全局聊天,并为正在播放的人进行本地聊天

当然我建议使用tic-tac-toe,但你可以选择另一个类似的游戏(简单的规则)..重要的是要关心许多也在玩夫妻的客户(处理数据转发和游戏管理)和向玩家发送状态(如游戏列表).

这个例子的好处是你有一个两级协议:

  • 第一级处理全球行动
  • 处理单个游戏的第二级


Oph*_*ian 5

我不确定你想要开始你的Linux网络编程职业生涯有多深入,但如果你想开始处理套接字,可能最简单的例子是生产者/消费者配对或Echo服务器.另一个好的来源是查看来自任何数量的大学/学院分布式计算课程的一些示例/作业.

生产者/消费者

这可以在您的计算机上的一对终端上运行以进行测试.创建两个应用程序

  • 生产者程序以主机名和端口开始,从用户获取一行输入,连接到消费者,向其发送输入,请求另一行输入,并在达到EOF(Ctrl-D)时结束.
  • 消费者程序以监听端口开始,等待来自Producer的连接,读取Producer发送的消息,输出该消息,关闭与Producer的连接,在发送中断时正常退出(Ctrl-C).

回声服务器

与生产者/消费者类似的想法.

  • Echo Server以侦听端口启动,等待连接,从客户端读取消息,将相同的消息发送回客户端,并在发送中断时正常退出(Ctrl-C).
  • Echo Client以主机名和端口开始,从用户获取一行输入,连接到服务器,发送输入,读回响应,比较两者以验证它是一个回声,请求另一行输入,以及到达EOF时结束.