当前位置: 首页 > news >正文

重庆做木门网站公司简介电脑微信公众号登录入口

重庆做木门网站公司简介,电脑微信公众号登录入口,自助建站优化,徐州网站建设推广文章目录 openssl3.2 - 官方demo学习 - saccept.cEND openssl3.2 - 官方demo学习 - saccept.c 建立TLSServer(使用了证书, 和证书中的私钥), 接收客户端的连接, 并将客户端发来的信息打印到屏幕 笔记 /*! \file saccept.c */ /*! \brief 建立TLSServer(使用了证书, 和证书中…

文章目录

    • openssl3.2 - 官方demo学习 - saccept.c
    • END

openssl3.2 - 官方demo学习 - saccept.c

建立TLSServer(使用了证书, 和证书中的私钥), 接收客户端的连接, 并将客户端发来的信息打印到屏幕

笔记

/*! \file saccept.c */
/*! \brief 建立TLSServer(使用了证书, 和证书中的私钥)接收客户端的连接, 并将客户端发来的信息打印到屏幕 *//** Copyright 1998-2017 The OpenSSL Project Authors. All Rights Reserved.** Licensed under the Apache License 2.0 (the "License").  You may not use* this file except in compliance with the License.  You can obtain a copy* in the file LICENSE in the source distribution or at* https://www.openssl.org/source/license.html*//*-* A minimal program to serve an SSL connection.* It uses blocking.* saccept host:port* host is the interface IP to use.  If any interface, use *:port* The default it *:4433** cc -I../../include saccept.c -L../.. -lssl -lcrypto -ldl*/#include <stdio.h>
#include <signal.h>
#include <stdlib.h>
#include <openssl/err.h>
#include <openssl/ssl.h>#pragma comment(lib, "libcrypto.lib")
#pragma comment(lib, "libssl.lib")#include <openssl/applink.c> /*! for OPENSSL_Uplink(00007FF8B7EF0FE8,08): no OPENSSL_Applink */#define CERT_FILE       "server.pem"static volatile int done = 0;void interrupt(int sig)
{done = 1;
}// linux才有的信号处理, VS2019中没有
#ifdef __unix__
void sigsetup(void)
{struct sigaction sa;/** Catch at most once, and don't restart the accept system call.*/sa.sa_flags = SA_RESETHAND;sa.sa_handler = interrupt;sigemptyset(&sa.sa_mask);sigaction(SIGINT, &sa, NULL);
}
#else 
void sigsetup(void) {}
#endif // #ifdef __unix__int main(int argc, char *argv[])
{char *port = NULL;BIO *in = NULL;BIO *ssl_bio, *tmp;SSL_CTX *ctx;char buf[512];int ret = EXIT_FAILURE, i;if (argc <= 1)port = "*:4433";elseport = argv[1];ctx = SSL_CTX_new(TLS_server_method());if (!SSL_CTX_use_certificate_chain_file(ctx, CERT_FILE))goto err;if (!SSL_CTX_use_PrivateKey_file(ctx, CERT_FILE, SSL_FILETYPE_PEM))goto err;if (!SSL_CTX_check_private_key(ctx))goto err;/* Setup server side SSL bio */ssl_bio = BIO_new_ssl(ctx, 0);if ((in = BIO_new_accept(port)) == NULL)goto err;/** This means that when a new connection is accepted on 'in', The ssl_bio* will be 'duplicated' and have the new socket BIO push into it.* Basically it means the SSL BIO will be automatically setup*/BIO_set_accept_bios(in, ssl_bio);/* Arrange to leave server loop on interrupt */sigsetup();again:/** The first call will setup the accept socket, and the second will get a* socket.  In this loop, the first actual accept will occur in the* BIO_read() function.*/if (BIO_do_accept(in) <= 0)goto err;while (!done) {// 阻塞的读i = BIO_read(in, buf, 512);if (i == 0) {/** If we have finished, remove the underlying BIO stack so the* next time we call any function for this BIO, it will attempt* to do an accept*/printf("Done\n");tmp = BIO_pop(in);BIO_free_all(tmp);goto again;}if (i < 0)goto err;fwrite(buf, 1, i, stdout);fflush(stdout);}ret = EXIT_SUCCESS;err:if (ret != EXIT_SUCCESS)ERR_print_errors_fp(stderr);BIO_free(in);return ret;
}

END

http://www.yayakq.cn/news/530074/

相关文章:

  • 免费机械网站模板百度广告联盟收益
  • 珠宝网站dedecms模版深圳招聘网站排名
  • 阿里云可以放几个网站网站域名费一年多少钱
  • php做网站技术方案一起做网店网站哪里进货的
  • 建网站做seo网站欢迎页制作
  • 购物网站建设案件vps做网站怎么加速
  • 怎么让网站绑定域名免费推广方法有哪些
  • iis默认网站停止广州建造网站公司
  • 网站空间编辑器南宁网站怎么做seo
  • 免费建立微信网站wordpress 页面别名
  • 用ps做网站方法杨浦网站建设
  • 联盟文明网站建设有新百度账号登陆入口
  • 营销品牌网站建设网站建设费用计入哪个科目
  • 企业网站建设一般包含哪些内容自己开网店没有货源怎么办
  • 如何帮人做网站大一网页设计实训总结
  • 个人网站需要那些萧县城乡建设局网站
  • 哈尔滨建设工程招聘信息网站服务式办公室网
  • 网站建设技术难点商城顺德网站建设
  • 举例行业门户网站山东富国建设投资有限公司网站
  • 基于node网站毕设代做wordpress安卓下载失败
  • 官方网站建设思路互联网推广图片
  • 网站设计需要那些模块wordpress 判断登录页面
  • oa报表网站开发在线教育网站怎么做
  • 网站如何做百度搜索优化珠海制作网站
  • 网站页面设计的重要性网站是哪个公司做的好处
  • 博白建设局网站网站换服务器
  • 焦作整站优化网站建设属于哪类工作
  • 移动端网站建设原则商务网站建设工程师是
  • 全县网站建设情况通报深圳惠州网站建设公司
  • 化妆品网站优势鄱阳有做百度网站的