C语言实现简单回声服务器

 更新时间:2022年03月02日 09:10:28   作者:reg183  
这篇文章主要为大家详细介绍了C语言实现简单回声服务器,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了C语言实现简单的回声服务器,供大家参考,具体内容如下

新建echo_server.c

#include<stdio.h>
#include <unistd.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <string.h>
#include <ctype.h>
#include <arpa/inet.h>

#define SERVER_PORT 666

int main(void){
    int sock;
    struct sockaddr_in server_addr;

    sock=socket(AF_INET,SOCK_STREAM,0);

    bzero(&server_addr,sizeof(server_addr));

    server_addr.sin_family=AF_INET;
    server_addr.sin_addr.s_addr=htonl(INADDR_ANY);

    server_addr.sin_port=htons(SERVER_PORT);

    bind(sock,(struct sockaddr *)&server_addr,sizeof(server_addr));

    listen(sock,128);

    printf("等待客户端的连接..\n");

    int done=1;
    while(done){
        struct sockaddr_in client;
        int client_sock;
        char client_ip[64];
        socklen_t client_addr_len;
        client_addr_len=sizeof(client);
        accept(sock,(struct sockaddr *)&client,&client_addr_len);
        printf("client ip:%s\n port :%d\n",
                inet_ntop(AF_INET,&client.sin_addr.s_addr,client_ip,sizeof(client_ip)),
                ntohs(client.sin_port));
    }
}

打包生成可执行文件

[root@localhost c++]# gcc echo_server.c  -o echo_server.exe

启动服务器

[root@localhost c++]# ./echo_server.exe 
等待客户端的连接..

telnet访问

[root@localhost ~]# telnet 127.0.0.1 666
Trying 127.0.0.1...
Connected to 127.0.0.1.
Escape character is '^]'.

服务器端打印

[root@localhost c++]# ./echo_server.exe 
等待客户端的连接..
client ip:127.0.0.1
 port :36156

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持脚本之家。

相关文章

  • Qt网络编程实现TCP通信

    Qt网络编程实现TCP通信

    这篇文章主要为大家详细介绍了Qt网络编程实现TCP通信,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2022-08-08
  • 关于UDP服务器客户端编程流程介绍

    关于UDP服务器客户端编程流程介绍

    大家好,本篇文章主要讲的是关于UDP服务器客户端编程流程介绍,感兴趣的同学赶快来看看吧,对你有帮助的话记得收藏
    2021-12-12
  • C/C++中线程基本概念与创建详解

    C/C++中线程基本概念与创建详解

    线程是在进程中产生的一个执行单元,是CPU调度和分配的最小单元,其在同一个进程中与其他线程并行运行,他们可以共享进程内的资源。本文就和大家一起聊聊线程基本概念以及如何创建多线程,需要的可以参考一下
    2022-09-09
  • 深入分析C++中声明与定义的区别

    深入分析C++中声明与定义的区别

    C++学了这么多年你知道为什么定义类时,类的定义放在.h文件中,而类的实现放在cpp文件中。它们为什么能够关联到一起呢?你知道什么东西可以放在.h文件中,什么不能。什么东西又可以放在cpp文件中。如果你忘记了或是压根就不明白,那么读过此文你会清晰无比!!
    2014-09-09
  • C++中vector类的一些简单实现

    C++中vector类的一些简单实现

    C++中的std::vector是一个动态数组(也被称为可变大小数组)的容器类,它是C++标准库提供的其中一种容器类,提供了方便的操作和管理动态数组的功能,本文就给大家介绍了C++中vector类的简单实现代码,需要的朋友可以参考下
    2023-08-08
  • C语言详细讲解指针数组的用法

    C语言详细讲解指针数组的用法

    在C语言和C++等语言中,数组元素全为指针变量的数组称为指针数组,指针数组中的元素都必须具有相同的存储类型、指向相同数据类型的指针变量。指针数组比较适合用来指向若干个字符串,使字符串处理更加方便、灵活
    2022-05-05
  • C++ EnterCriticalSection简单使用

    C++ EnterCriticalSection简单使用

    线程锁在多线程中可以控制线程的执行顺序,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-08-08
  • openCV中meanshift算法查找目标的实现

    openCV中meanshift算法查找目标的实现

    本文主要介绍了openCV中meanshift算法查找目标的实现,文中通过示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-11-11
  • C/C++ 引用作为函数的返回值方式

    C/C++ 引用作为函数的返回值方式

    这篇文章主要介绍了C/C++ 引用作为函数的返回值方式,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-07-07
  • C指针原理教程之C快速入门

    C指针原理教程之C快速入门

    C语言作为大学编程或者计算机专业的一门必修课,把很多初学编程的小伙伴都难住了,感觉无从下手,今天呢,我们来简单介绍下,如何快速入门C语言
    2019-02-02

最新评论