• 使用的语言为C/C++
  • 源码支持的平台为:Windows / Linux

一、为何要进行跨平台操作

  首先,我是想在网络编程学习渐入佳境后,自己尝试做一个网络方面的项目,其中就必须用到服务器。Linux服务器相比Windows服务器更加稳定且高效,所以对于我来说,学会如何编写出可以在Linux系统下运行的网络程序是必不可少的。
  其次,就目前来说,企业中的高性能网络编程都是基于Linux的,学会跨平台的网络编程技能,可以在未来就业方面等有很大的好处。
  由此,我决定在网络编程学习的第四小阶段,学习如何进行跨平台的网络编程。

阅读全文 »

  • 使用的语言为C/C++
  • 源码支持的平台为:Windows

一、为何要使用select网络模型?

  通过前面的学习,已经实现了简单的网络报文收发。但是可以很明显的看出其中的缺点,那就是整个程序的运行是阻塞模式的。即服务端在与一个客户端进行socket连接时,只要连接不中断,那么就无法接收新的客户端的消息。而客户端在未输入命令时,是阻塞状态,也无法接收服务端发来的消息。
  在之前碰到这个问题时,我的想法是通过多线程来解决程序运行中的阻塞问题,但是在最近的学习中,我了解到可以使用select网络模型来方便快捷的解决小型网络程序运行中的阻塞问题。(I/O多路复用模型相关内容)

阅读全文 »

  • 使用的语言为C/C++
  • 源码支持的平台为:Windows

一、网络数据报文的格式定义

  • 报文有两个部分,包头包体,是网络消息的基本单元。
  • 包头: 描述本次消息包的大小,描述包体数据的作用。
  • 包体: 其中包含了需要传输的数据。
阅读全文 »

  • 使用的语言为C/C++
  • 源码支持的平台为:Windows

一、建立简易TCP服务端

1.建立服务端大致流程

  1. 建立一个套接字 (socket)
  2. 绑定客户端连接的端口 (bind)
  3. 监听网络端口 (listen)
  4. 等待接受客户端连接 (accept)
  5. 接收客户端发送的数据 (recv)
  6. 向客户端发送数据 (send)
  7. 关闭套接字 (closesocket)
阅读全文 »

HB小咸鱼学习记录

  • 初中的时候曾经学过一点java,算是程序的敲门砖,但是没想到上了大学最先深入学习的是C语言和C++。21年初这个寒假决定在家系统学习Java和网络编程,发个帖子记录过程,方便今后查看。
阅读全文 »
0%