⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 tlsserver.cxx

📁 SIP(Session Initiation Protocol)是由IETF定义
💻 CXX
字号:
#include <cstdio>#include "Tcp_ServerSocket.hxx"#include "TlsConnection.hxx"#include "cpLog.h"#include <stdio.h>#define HOME "./"#define CERTF  HOME "cert.pem"#define KEYF  HOME  "key.pem"int main(){    cpLogSetPriority(LOG_DEBUG_STACK);    TcpServerSocket f(4000);    char buf[4096];    while(1)    {	Connection c;	f.accept(c);	int bytesRead;	bool goTls = false;#if 1	while(1)	{	    int result = c.readLine(buf, 4095, bytesRead);	    if(result <= 0)	    {		cpLog(LOG_DEBUG, "no tls");		break;	    }	    else	    {		// check for start command		if(strcmp(buf, "STARTTLS\n") == 0)		{		    goTls = true;		    c.writeData((void*)"200 OK\n", strlen("200 OK\n"));		    c.writeData((void*)"Content-Length: 0\n", strlen("Content-Length: 0\n"));		    cpLog(LOG_DEBUG, "tls!");		    break;		}	    }	}#endif	goTls = true;	if(goTls)	{	    TlsConnection tls(c);	    	    int err = tls.initTlsServer(CERTF, KEYF);	    if(err > 0)	    {				err = tls.readn(buf, 4095);				buf[err] = '\0';				printf("got: %s\n", buf);		string s = "HELLO, WORLD!\nThis is a test that i am writing people\ni hope it works now\n";		tls.writeData(s);	    }	    else	    {		cpLog(LOG_ERR, "error initializing TLS server");		cpLog(LOG_ERR, "errcode: %d", tls.getErrMsg(err).logData());	    }	    tls.close();		}	else	{	    c.close();	}    }    return 0;}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -