15、网络编程与控制台、文件 I/O 入门

网络编程与控制台、文件 I/O 入门

1. 网络编程基础

在网络编程中,服务器和客户端的构建与运行是基础操作。构建并按顺序运行服务器和客户端后,我们能得到相应的输出,这也验证了我们所学的内容。

1.1 服务器性能优化

为了让服务器能够处理多个并发的传入连接,我们可以对服务器应用进行优化。当前实现的服务器算法是顺序执行的,在 listen() 之后,程序会一直等待 accept() 直到结束,然后关闭连接。我们可以按以下步骤进行优化:
1. 在 accept() 上运行一个无限循环,使服务器始终处于就绪状态,随时为客户端提供服务。
2. 为每个接受的连接启动一个新线程,可以使用 std::thread std::async 来实现。

同时,客户端和服务器之间交换的数据也需要我们关注。通常,它们会使用双方都知晓的协议进行通信。例如,Web 服务器会涉及 HTML、文件和资源等的交换;而监控和控制系统可能会使用特定标准定义的协议。

1.2 UDP/IP 通信编程

当进程之间进行通信时,可靠性并非总是选择通信机制的主要标准。在某些情况下,我们更需要快速的通信,而无需承担 TCP 协议为保证可靠性所带来的连接、流量控制等负担。例如视频流、网络电话(VoIP)等场景。下面我们将开发一个客户端和一个服务器程序,以实现基于 UDP 的进程间通信。

服务器端程序(serverUDP.cpp)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值