如何使用C++实现简单的TCP服务器的编写

简单的TCP服务器实现

#include <stdio.h>
#include <ctype.h>
#include <sys/socket.h>
#include <arpa/inet.h>
#include <stdlib.h>
#include <string.h>
#include <unistd.h>
#include <errno.h>
#include <pthread.h>

#define SERVER_PORT 7000
void sys_err(const char *str)
{
  perror(str);
  exit(1);
}
int main(int agrc, char *argv[]){
  int ret;
  char buf[BUFSIZ];
  // 创建文件描述符
  int lfd = 0, cfd=0;
  // 创建addr地址的结构体
  struct sockaddr_in server_addr, client_addr;
  socklen_t client_addr_len;

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

  // 创建socket
  lfd = socket(AF_INET, SOCK_STREAM, 0);
  if(lfd == -1){
    sys_err("socket error");
  }
  // 绑定端口
  bind(lfd, (struct sockaddr *)&server_addr, sizeof(server_addr));
  // 设置监听
  listen(lfd, 128);

  // 堵塞等待
  client_addr_len = sizeof(client_addr);
  cfd = accept(lfd, (struct sockaddr *)&client_addr, &client_addr_len);
  if (cfd == -1){
    sys_err("accept error");
  }

  while(1){
      // 读取内容
      ret = read(cfd, buf, sizeof(buf));
      write(STDOUT_FILENO, buf, ret);
      for (int i=0; i<ret; i++){
        buf[i] = toupper(buf[i]);
      }

      write(cfd, buf, ret);
  }

  close(lfd);
  close(cfd);

  return 0;
}

原文地址:https://www.cnblogs.com/fandx/p/12151455.html

时间: 2024-10-04 10:02:12

如何使用C++实现简单的TCP服务器的编写的相关文章

Mina、Netty、Twisted一起学:实现简单的TCP服务器

MINA.Netty.Twisted为什么放在一起学习?首先,不妨先看一下他们官方网站对其的介绍: MINA: Apache MINA is a network application framework which helps users develop high performance and high scalability network applications easily. It provides an abstract event-driven asynchronous API

Mina、Netty、Twisted一起学(一):实现简单的TCP服务器

MINA.Netty.Twisted为什么放在一起学习?首先,不妨先看一下他们官方网站对其的介绍: MINA: Apache MINA is a network application framework which helps users develop high performance and high scalability network applications easily. It provides an abstract event-driven asynchronous API

Windows 下的最简单的TCP服务器客户端

他们是短连接的,服务器接受客户端之后,马上发送一个消息,发送完以后立即将客户端断开掉,然后继续等待下一个连接. 使用Winsocket2必须要引用到的头文件和需要包含到的链接库文件: #include <WinSock2.h> #pragma comment( lib, "ws2_32.lib" ) 以下代码是Winsocket2的系统初始化和关闭的封装代码. class WinSocketSystem { public: WinSocketSystem() { int i

python写一些简单的tcp服务器和客户端

代码贴上,做个记录 TcpClient # -*- coding:utf-8 -*- import socket target_host = "127.0.0.1" #服务器端地址 target_port = 5555 #与服务器的端口号一致 while True: client = socket.socket(socket.AF_INET,socket.SOCK_STREAM) client.connect((target_host,target_port)) #data存储要发送的

【Swoole】简单安装与创建TCP服务器

pecl install swoole PHP的异步.并行.高性能网络通信引擎,使用纯C语言编写,提供了php语言的异步多线程服务器,异步TCP/UDP网络客户端,异步MySQL,异步Redis,数据库连接池,AsyncTask,消息队列,毫秒定时器,异步文件读写,异步DNS查询. Swoole内置了Http/WebSocket服务器端/客户端.Http2.0服务器端. Swoole可以广泛应用于互联网.移动通信.企业软件.云计算.网络游戏.物联网(IOT).车联网.智能家居等领域. 使用PHP

TCP学习之建立一个简单的客户/服务器系统--回射系统

TCP学习之建立一个简单的客户/服务器系统--回射系统 相关的资料可以参考Unix网络编程,这个只是修改版,不需要依赖任何文件,可以独立编译通过,而且是在两台不同的主机上进行的. fggets和fputs这两个函数来自标准I/O函数库,writen和readline见my_unp.h头文件 //my_unp.h #include<stdarg.h> #include<syslog.h> #include<stdio.h> #include<netinet/in.h

通过python 构建一个简单的聊天服务器

构建一个 Python 聊天服务器 一个简单的聊天服务器 现在您已经了解了 Python 中基本的网络 API:接下来可以在一个简单的应用程序中应用这些知识了.在本节中,将构建一个简单的聊天服务器.使用 Telnet,客户机可以连接到 Python 聊天服务器上,并在全球范围内相互进行通信.提交到聊天服务器的消息可以由其他人进行查看(以及一些管理信息,例如客户机加入或离开聊天服务器).这个模型如图 1 所示. 图 1. 聊天服务器使用 select 方法来支持任意多个客户机 聊天服务器的一个重要

自己动手模拟开发一个简单的Web服务器

开篇:每当我们将开发好的ASP.NET网站部署到IIS服务器中,在浏览器正常浏览页面时,可曾想过Web服务器是怎么工作的,其原理是什么?“纸上得来终觉浅,绝知此事要躬行”,于是我们自己模拟一个简单的Web服务器来体会一下. 一.请求-处理-响应模型 1.1 基本过程介绍 每一个HTTP请求都会经历三个步凑:请求-处理-响应:每当我们在浏览器中输入一个URL时都会被封装为一个HTTP请求报文发送到Web服务器,而Web服务器则接收并解析HTTP请求报文,然后针对请求进行处理(返回指定的HTML页面

用Socket来简单实现IIS服务器

刚刚接触ASP.NET编程,为了更好的屡清楚服务器的处理过程,就用Socket模拟服务器来处理请求.用Socket来模拟服务器的时候,同样是自己来封装一些对应的类文件.包括 HttpRequest.HttpResponse.HttpContext.HttpApplication.IHttpHandel.主要的执行流程是:先用Socket来创建一个简单的服务器,进行监听,当监听到请求后将请求交给处理程序去处理,应用程序中根据请求的是静态资源还是动态资源做出不同的处理.然后通过Socket对象将响应