简单的TCP服务端

简介: 简单的TCP服务端

首先找一个空文件夹,新建 tcp_echo_server.c 文件,写入如下内容:

#include "hv/hloop.h"
void on_close(hio_t *io) {}
void on_recv(hio_t *io, void *buf, int readbytes) {
  // 回显数据
  hio_write(io, buf, readbytes);
}
void on_accept(hio_t *io) {
  // 设置close回调
  hio_setcb_close(io, on_close);
  // 设置read回调
  hio_setcb_read(io, on_recv);
  // 开始读
  hio_read(io);
}
int main(int argc, char **argv) {
  if (argc < 2) {
    printf("Usage: cmd port\n");
    return -10;
  }
  int port = atoi(argv[1]);
  // 创建事件循环
  hloop_t *loop = hloop_new(0);
  // 创建TCP服务
  hio_t *listenio = hloop_create_tcp_server(loop, "0.0.0.0", port, on_accept);
  if (listenio == NULL) {
    return -20;
  }
  // 运行事件循环
  hloop_run(loop);
  // 释放事件循环
  hloop_free(&loop);
  return 0;
}点击复制复制失败已复制


文件下载:tcp_echo_server.c

编译:

$ gcc tcp_echo_server.c -o tcp_echo_server -Wl,-R/usr/local/lib -lhv点击复制复制失败已复制


之后运行:

$ ./tcp_echo_server 1234点击复制复制失败已复制


提示

1234 为监听的端口。

测试( Linux 环境):

$ nc 127.0.0.1 1234
< hello
> hello点击复制复制失败已复制


windows 端可使用 telnet 作为客户端测试:

$ telent 127.0.0.1 1234
目录
相关文章
|
网络协议 Java
Java BIO tcp服务端向客户端消息群发代码教程实战
java BIO tcp服务端向客户端消息群发代码教程实战
124 0
Java BIO tcp服务端向客户端消息群发代码教程实战
|
网络协议
TCP编程中的客户端与服务端的通信实现
TCP编程中的客户端与服务端的通信实现
107 0
|
网络协议 C++
C++网络通信实例(TCP/IP协议,包括服务端与客户端通信)
C++网络通信实例(TCP/IP协议,包括服务端与客户端通信)
413 0
C++网络通信实例(TCP/IP协议,包括服务端与客户端通信)
|
网络协议
TCP客户端与服务端
Socket(简称:套接字)是进程之间通信的一个工具,好比现实中的插座,所有的家用电器要想工作都是基于插座进行,进程之间想要进行网络通信需要基于这个socket,负责进程之间的网络数据传输,好比数据的搬运工
234 0
TCP客户端与服务端
|
网络协议 图形学
Unity【Socket TCP】- 服务端与客户端通讯的简单示例
Unity【Socket TCP】- 服务端与客户端通讯的简单示例
501 0
Unity【Socket TCP】- 服务端与客户端通讯的简单示例
|
网络协议 Java
Java网络编程Demo,使用TCP 实现简单群聊功能Groupchat,创建一个服务端,使多个客户端都能收到消息
Java网络编程Demo,使用TCP 实现简单群聊功能Groupchat,创建一个服务端,使多个客户端都能收到消息
163 0
Java网络编程Demo,使用TCP 实现简单群聊功能Groupchat,创建一个服务端,使多个客户端都能收到消息
|
网络协议 Java
Java网络编程Demo,使用TCP 实现简单群聊功能GroupchatSimple,多个客户端输入消息,显示在服务端的控制台
Java网络编程Demo,使用TCP 实现简单群聊功能GroupchatSimple,多个客户端输入消息,显示在服务端的控制台
150 0
Java网络编程Demo,使用TCP 实现简单群聊功能GroupchatSimple,多个客户端输入消息,显示在服务端的控制台
|
网络协议
Qt中的TCP服务端和客户端互发消息
Qt中的TCP服务端和客户端互发消息
205 0
Qt中的TCP服务端和客户端互发消息
|
网络协议 Python
Python网络编程——TCP服务端多线程
TCP服务端与多个客户端同时建立套接字,需要一个线程维护一个客户端。
19109 15
|
网络协议 Python
Python网络编程——TCP服务端程序开发
TCP服务端,需要与客户端建立连接,接收并处理客户端传输来的数据。
4768 16