网工干货知识

超全学习笔记
当前位置:首页 > 干货知识

用C语言实现的简单客户端/服务器应用程序

更新时间:2026年03月27日   作者:spoto   标签(Tag):

套接字编程使得两个程序能够通过网络进行通信。在这里,我们用C语言创建了一个简单的客户端-服务器应用程序。当连接建立时,服务器会向客户端发送消息。这种通信方式使用的是TCP套接字,从而实现可靠的数据传输。

客户端-服务器通信流程

客户/用户

In套接字编程客户端应用程序会与服务器进行通信。它会建立连接,发送请求,并接收来自服务器的响应。这些响应随后会被呈现给用户。通常情况下:

  • 一个客户端一次只能与一台服务器进行通信。
  • 直接与用户进行交互
  • 发送请求并接收响应。

客户端套接字工作流程

创建一个套接字:

  • socket()函数用于创建一个通信端点。
  • 参数:-领域/范围AF_INET(IPv4)类型:SOCK_STREAM(TCP)协议/规范:0(默认值)

2. 连接到服务器:connect()函数通过服务器的IP地址和端口号来建立与服务器的连接。

3. 接收数据:recv()函数用于接收服务器发送过来的数据。

4. 显示该消息:接收到的数据会被打印在客户端终端上。

客户端代码

C
#include<netinet/in.h>//用于存储地址信息的结构#include<stdio.h>#include<stdlib.h>#include<sys/socket.h>//用于套接字API#include<sys/types.h>整数主要/核心(整数argc,字符/字母常量*参数数组[]){整数sockD=插座(AF_INET,SOCK_STREAM,0);结构体sockaddr_inservAddr;servAddr.sin_family=AF_INET;servAddr.sin_port=htons(9001);// 使用一些未使用的端口号servAddr.sin_addr.s_addr=INADDR_ANY;整数连接状态=连接(sockD,(结构体sockaddr*)&servAddr,sizeof(servAddr));if(连接状态==-1){printf(“错误……”\n");}否则{字符/字母strData[255];接收(sockD,strData,sizeof(strData),0);printf(消息:%s\n",strData);}返回0;}

服务器

在客户端-服务器架构中,服务器程序会持续运行,并监听来自客户端的连接请求。一旦建立连接后,服务器就会处理这些请求,并返回所需的数据。通常情况下,服务器会:

  • 持续运行
  • 处理来自多个客户端的请求
  • 提供诸如数据访问或计算之类的服务。

服务器套接字工作流程

创建一个套接字:与使用该 socket() 函数的客户端类似。

2. 固定插座:bind()函数用于将套接字与特定的IP地址和端口号关联起来。

3. 注意其中的关联点:listen()函数会使服务器进入被动模式,等待客户端的连接请求。

4. 接受客户端的连接:accept()函数负责接受传入的连接请求,并返回一个新的套接字,以便与客户端进行通信。

5. 将数据发送给客户:send()函数用于将消息发送给已连接的客户端。

服务器代码

C
#include<netinet/in.h>//用于存储地址信息的结构#include<stdio.h>#include<stdlib.h>#include<sys/socket.h>//用于套接字API的相关操作#include<sys/types.h>整数主要/核心(整数argc,字符/字母const*argv[]){// 创建一个服务器套接字,其实现方式与之前所做的事情类似。// 客户端程序整数servSockD=插座(AF_INET,SOCK_STREAM,0);// 字符串用于存储要发送给客户端的数据字符/字母serMsg[255]=服务器发给“”的消息客户/用户\'您好,客户。\' ";// 定义服务器地址结构体sockaddr_inservAddr;servAddr.sin_family=AF_INET;servAddr.sin_port=htons(9001);servAddr.sin_addr.s_addr=INADDR_ANY;// 将套接字绑定到指定的IP地址和端口上绑定(servSockD,(结构体sockaddr*)&servAddr,sizeof(servAddr));// 等待连接建立(servSockD,1);// 用于存储客户端套接字的整数变量。整数clientSocket=接受(servSockD,空值,空值);// 将消息发送到客户端套接字发送(clientSocket,serMsg,sizeof(serMsg),0);返回0;}

客户端-服务器通信流程

  1. 服务器会创建一个套接字。
  2. 将套接字与IP地址和端口关联起来。
  3. 正在监听传入的连接请求。
  4. 客户端创建一个套接字,并发送连接请求。
  5. 服务器已接受连接请求。
  6. 服务器向客户端发送消息。
  7. 客户端接收并显示消息。

执行说明/操作指南

打开两个终端窗口。

2. 编译服务器程序:

gcc server.c -o server

3. 编译客户端程序:

gcc client.c –o client

4. 请先运行服务器:

./服务器

5. 在另一个终端中运行该客户端程序:

./客户端

6. 客户终端将会显示以下内容:

消息:服务器向客户端发送的消息:“你好,客户端。”

参考/参照

http://pirate.shu.edu/~wachsmut/Teaching/CSAS2214/Virtual/Lectures/lecture17.html
              马上抢免费试听资格
意向课程:*必选
姓名:*必填
联系方式:*必填
QQ:
思博SPOTO在线咨询

相关资讯

即刻预约

免费试听-咨询课程-获取免费资料