GNU/Linux下实现一个简易echo服务器

本文详细讲解如何在GNU/Linux环境下使用C语言实现一个简易的echo服务器。服务器功能是接收用户输入并将其回显。涉及的关键系统调用包括socket、bind、listen、accept、connect和close。代码示例包含server.c和client.c,可在Linux环境中编译运行。通过此教程,读者可以学习到基础的网络编程知识。
摘要由CSDN通过智能技术生成


本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。


intro

  • 本文将详细讲解一个简易echo服务器的实现

  • 本文实现的简易echo服务器仅支持将用户在客户端的输入显示在服务器

  • 使用C语言编写

  • 文章中代码不附带错误检查,详细源码在这里

  • echo服务器就像是网络编程的Hello World!,是一定要掌握的

  • 我的编码环境:

    • OS:GUN/Linux Mint发行版
    • IDE:vscode
    • COMPILER:GCC

实现逻辑与效果

实现逻辑

效果预览

头文件与主要函数

头文件

  • head.h
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>

#define MAXBUFFER 256

主要函数

  • socket():系统调用创建一个新 socket

  • bind():系统调用将一个 socket 绑定到一个地址上。通常,服务器需要使用这个调用来将其 socket 绑定到一个众所周知的地址上使得客户端能够定位到该 socket 上

  • listen():系统调用允许一个 流socket 接受来自其他 socket 的接入连接

  • accept():系统调用在一个 监听流socket 上接受来自一个对等应用程序的连接, 并可选地返回对等 socket 的地址

  • connect():系统调用建立与另一个 socket 之间的连接

  • close():终止一个流 socket 连接

  • bzero():从 BSD 衍生出来的 bzero()函数是一个可以用来取代memset()对一个结构的内容进行清零的函数,但SUSv4规范已将其删除,本文为追求简单就使用它了

  • inet_pton():

    • p为展现(presentation),n为网络(network)
    • 展现形式是人类可读的形式,IPv4中点分十进制地址即为"展现的",例如127.0.0.1
    • 网络形式即为网络字节序的二进制IP地址,只有电脑可以理解

SHOW ME THE CODE

  • server.c
#include "head.h"

int main(int argc, char **argv)
{
   
    int serverFd, connfd;
    int ret;
    socklen_t len;
    // 定义服务器结构体与客户端结构体
    struct sockaddr_i
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值