歌词风里雨里我在这里等你


歌词风里雨里我在这里等你  

从零开始学C语言,做聊天软件?完全没问题,咱们就来做一个只有两个人的最“”聊天器,你我之间,信息互通,只有你知我知。

让我们直接开始编码吧!只要你掌握了基础的C语言知识,不用担心看不懂,我会帮你深入浅出,彻底理解。

一、聊天软件的基础模型是怎样的?

如果你是新手,可能会问,什么是模型?不用担心,我现在就告诉你基础“模型”是什么。

我们可以简单理解“模型”为这款聊天软件基本的通信方式,只要清楚了这个形式流程,然后在这个流程中添加代码就可以了。如果你还不懂“流程”是什么,那我就告诉你,这是一个步骤,你只需要懂这个步骤,我们用代码实现这个步骤就完成了。

现在还有什么问题吗?我们开始第一步,在通信中,通常有一个服务端。

1.1 什么是服务端?

服务端很简单,就像你去移动或联通的营业厅,客服会为你提供服务,如办理业务等。在我们的聊天软件中,服务端就是等待别人连接你的那个,只要你上线了,打开软件,连接到服务端,就可以开始聊天了。

服务端通常都在这里等你上线。

1.2 又不懂什么是客户端了?

没关系,打游戏懂吧?你下载到电脑或手机的就是客户端。如果你没有服务端就不能和别人匹配,这个理解了吗?

1.3 基本的工具要拿过来吧?

还知道头文件吧?头文件就像一个工具箱,需要什么就可以拿什么工具。我们做聊天软件就需要一个工具箱,这个工具箱叫做“winsock2.h”,怎么拿呢?知道include吗?那就直接把头文件include进来就可以了。常规的输入输出工具箱也要拿过来。所以服务端的第一行第二行代码就写成:include和include。

1.4 开始socket编程

开始socket编程了吗?一说socket就懵了对吧?我先给出一个定义:“socket是应用之间通信的端点”。不懂对吧?那我继续说。socket可以理解为两个通信软件之间的接口,你可以把服务端比作“插座”,客户端比作“插头”,一插就能通电了。这样说理解了吗?当然这种解释比较通俗但不一定完全准确,你就理解成插头绝对没问题。

1.5 关于socket使用插头的标准问题

我们用的插头都有标准,没有标准那么多电器怎么都能用常规插头呢?这个socket通信端口也一样,它是基于一些通信协议的,例如TCP/IP等。可能又有同学问TCP/IP是什么鬼?你只需要知道这是一个通信协议就可以了。我们现在的socket通信就是基于这个协议的。协议的具体细节我们不需要现在搞懂,只需要知道如何使用socket就行。

二、开始写服务端代码

2.1 弄清楚使用socket通信的步骤

编写C语言Windows下的socket需要经过几个步骤:首先是WSAStartup初始化,然后创建socket套接字(socket也叫套接字),接着进行bind绑定信息,然后进行listen等待连接请求;若有连接请求则进行connect连接;接下来使用accept接收请求得到客户端的连接后可以选择接收recv或发送send数据;最后closesocket关闭socket连接,WSACleanup最终关闭。

服务端编写完成指南

在完成了服务端的主要部分后,最后一步就是关闭套接字并进行清理工作。以下是完整的代码示例:

包含必要的头文件

主函数开始

初始化Winsock库

创建服务器套接字

设置IPV4地址和端口,并将其绑定到服务器套接字上

开始来自客户端的连接请求

接受客户端的连接请求,并获取客户端的套接字

进入循环,与客户端进行交互

发送消息给客户端

接收来自客户端的消息,并打印出来

提示用户输入内容,然后将内容发送给客户端

循环结束后,关闭客户端和服务器套接字,并清理Winsock库

返回0,表示程序正常结束

三、客户端编写简述

客户端的编写与服务端有着许多相似之处,你是否相信呢?以下是代码示例:

包含必要的头文件

主函数开始

初始化Winsock库

创建客户端套接字

设置IPV4地址和端口,连接到服务器

进入循环,与服务器进行交互

提示用户输入内容,然后将内容发送给服务器

接收来自服务器的消息,并打印出来

循环结束后,关闭套接字,清理Winsock库,并等待用户操作

注意事项:在使用Dev-C++复制代码时,如果出现错误,请按照以下步骤进行操作

点击编译

进入编译选项

在出现的窗添加以下参数

示例演示注意事项:在进行代码演示时,请注意以下几点。如果在开发过程中遇到任何问题,欢迎随时交流讨论。

  歌词风里雨里我在这里等你