91av视频/亚洲h视频/操亚洲美女/外国一级黄色毛片 - 国产三级三级三级三级

  • 大小: 13.2MB
    文件類型: .zip
    金幣: 1
    下載: 0 次
    發布日期: 2023-07-08
  • 語言: 其他
  • 標簽: openssl??WIndows??IOCP??

資源簡介

這個是一個結合了OpenSSL 和 IOCP的一個例子,需要的可以參考一下的。

資源截圖

代碼片段和文件信息

//?client.cpp?:?Defines?the?entry?point?for?the?console?application.
//

#include?“stdafx.h“
#include?se.h>
#include?
#include?“../shared/openssl_iocp.h“

CHandle?connect_event(CreateEvent(0?FALSE?FALSE?0));
CHandle?close_event(CreateEvent(0?TRUE?FALSE?0));

session?*g_psession?=?nullptr;

void?app_on_session_connect(session?*psession)
{
if(psession->status?&?CONNECTED)
{
printf(“Connected?to?%s\n“?psession->addresses_sz[REMOTE]);

X509*?cert?=?SSL_get_peer_certificate(psession->ssl);
ssl_print_cert_info(cert);

printf(“Type?message?to?be?sent?to?server?and?press?ENTER?empty?message?to?exit\n“);
}
else
printf(“Failed?to?connect?%s\n“?psession->addresses_sz[REMOTE]);

SetEvent(connect_event);
}

void?app_on_session_send(session?*psession)
{
}

void?app_on_session_recv(session?*psession)
{
printf(“Received?%d?bytes?from?%s:“?psession->ssl_buffer_size[RECV]?psession->addresses_sz[REMOTE]);

char?buffer[BUFFER_SIZE+1]?=?{0};
strncpy_s(buffer?psession->ssl_buffer[RECV]?psession->ssl_buffer_size[RECV]);
buffer[psession->ssl_buffer_size[RECV]]?=?0;
printf(“%s\n“?buffer);
}

void?app_on_session_close(session?*psession)
{
printf(“Session?%s?-?%s?is?closed\n“?psession->addresses_sz[LOCAL]?psession->addresses_sz[REMOTE]);

SetEvent(close_event);
}

int?_tmain(int?argc?_TCHAR*?argv[])
{
ssl_init();

if(argc?>=?2)
{
sockaddr_storage?addr?=?{0};
sockaddr_in?*paddrin?=?(sockaddr_in*)&addr;

addrinfo?hints?=?{0};
hints.ai_family?=?AF_INET;
hints.ai_socktype?=?SOCK_STREAM;
hints.ai_protocol?=?IPPROTO_TCP;
addrinfo?*paddrinfo?=?0;
if(0?==?getaddrinfo(CW2A(argv[1])?““?&hints?&paddrinfo))
{
for(addrinfo?*p?=?paddrinfo;?p?!=?0;?p?=?p->ai_next)
{
memcpy_s(&addr?sizeof(addr)?p->ai_addr?p->ai_addrlen);
break;
}
freeaddrinfo(paddrinfo);

paddrin->sin_port?=?htons(443);
if(argc?==?3)
{
int?port?=?_wtol(argv[2]);
if(port?>?0?&&?port? paddrin->sin_port?=?htons(port);
}

//?create?a?new?session?object?and?initiate?connection
g_psession?=?session_new();
session_connect(g_psession?&addr);

//?wait?for?connection?to?finish?(either?succeeded?or?failed)
WaitForSingleobject(connect_event?INFINITE);

while(true)
{
char?data[BUFFER_SIZE];
gets_s(data);

//?connection?has?been?closed?(either?by?us?or?server)?exit?from?loop
if(WAIT_object_0?==?WaitForSingleobject(close_event?0))
break;

//?if?input?string?is?empty?close?the?connection?to?server
int?len?=?strlen(data);
if(len?==?0)
{
session_lock(g_psession);
session_close(g_psession);
session_unlock(g_psession);
break;
}

//?send?input?string?to?server
session_send_data(g_psession?data?len);
}

//?wait?for?connection?to?be?closed?and?all?pending?operations?have?finished?or?been?cancelle

?屬性????????????大小?????日期????時間???名稱
-----------?---------??----------?-----??----
?????目錄???????????0??2013-02-28?06:38??client\
?????文件????????3328??2013-02-28?05:46??client\client.cpp
?????文件????????5331??2013-02-27?03:49??client\client.vcxproj
?????文件?????????909??2013-02-26?08:30??client\client.vcxproj.filters
?????文件?????????293??2013-02-26?08:22??client\stdafx.cpp
?????文件?????????320??2013-02-26?08:22??client\stdafx.h
?????文件?????????314??2013-02-26?08:22??client\targetver.h
?????目錄???????????0??2013-02-27?03:44??openssl\
?????目錄???????????0??2013-02-27?03:43??openssl\include\
?????目錄???????????0??2013-02-27?03:43??openssl\include\openssl\
?????文件????????5653??2013-02-12?00:08??openssl\include\openssl\aes.h
?????文件????????2986??2013-02-12?00:08??openssl\include\openssl\applink.c
?????文件???????53578??2013-02-12?00:08??openssl\include\openssl\asn1.h
?????文件???????31029??2013-02-12?00:08??openssl\include\openssl\asn1t.h
?????文件???????19714??2013-02-12?00:08??openssl\include\openssl\asn1_mac.h
?????文件???????33820??2013-02-12?00:08??openssl\include\openssl\bio.h
?????文件????????5265??2013-02-12?00:08??openssl\include\openssl\blowfish.h
?????文件???????37063??2013-02-12?00:08??openssl\include\openssl\bn.h
?????文件????????4759??2013-02-12?00:08??openssl\include\openssl\buffer.h
?????文件????????5084??2013-02-12?00:08??openssl\include\openssl\camellia.h
?????文件????????4591??2013-02-12?00:08??openssl\include\openssl\cast.h
?????文件????????3324??2013-02-12?00:08??openssl\include\openssl\cmac.h
?????文件???????20420??2013-02-12?00:08??openssl\include\openssl\cms.h
?????文件????????2058??2013-02-12?00:08??openssl\include\openssl\comp.h
?????文件???????10103??2013-02-12?00:08??openssl\include\openssl\conf.h
?????文件????????4163??2013-02-12?00:08??openssl\include\openssl\conf_api.h
?????文件???????24939??2013-02-12?00:08??openssl\include\openssl\crypto.h
?????文件???????11090??2013-02-12?00:08??openssl\include\openssl\des.h
?????文件???????18677??2013-02-12?00:08??openssl\include\openssl\des_old.h
?????文件???????10250??2013-02-12?00:08??openssl\include\openssl\dh.h
?????文件???????12378??2013-02-12?00:08??openssl\include\openssl\dsa.h
............此處省略75個文件信息

評論

共有 條評論