TCP服务端能正常连接,但是SSL服务端连接怎么都有问题,连接进入马上就断开了,错误代码13
6 _: _8 v/ k% {6 B# W& M
- d4 W, T* i& A. s, U8 w5 ~3 ]( [0 X! ^- s
using System;6 {- R N0 }$ P. P; b% \
using System.Threading.Tasks;; m% d; n) U; f/ ]. I8 b0 D
using HPSocket;
. `* S( K0 I9 h3 K } fusing HPSocket.Ssl;# B2 |) n8 [# H S
using HPSocket.Tcp;
8 g( N6 V) P* e8 m' S& S
8 A/ W. M4 Q0 Jnamespace SslServerDemo+ u9 g7 P2 n s+ ]: c
{1 i- J" H G" f) M$ g+ k' O
class Program+ o, x! U) e" X$ R; Q. }; ~# Z
{8 }4 V! I1 ], P9 K. |9 l' N p
static void Main(string[] args)
y2 i7 W% u6 A {
( R) A% K6 f% f/ O4 h // 创建SSL服务端. ^0 q/ w6 s2 E! {. z
//var server = new SslServer();; [0 a, a: V( {+ F9 v
ISslServer server = new SslServer();
$ u# R9 y) A! A6 \9 x; l K* c: Y5 {" q. V
// 设置证书和私钥
& `/ ]2 x5 C* s 4 o4 J6 s$ c( h3 O2 }' t- K) L
server.Initialize(false);
# T# s Y; w5 ^, w' w% Q, D, i server.VerifyMode = SslVerifyMode.None;
# {. [7 s2 i* T2 j server.PemCertFile = "D:/cxiapu/zs/server.crt";+ P/ I# R) k4 D2 o
server.PemKeyFile = "D:/cxiapu/zs/server.key";! Q1 {; r. j6 L
server.KeyPassword = "mwyfeeq568";
/ y3 {- h; |% R" j0 f server.CaPemCertFileOrPath = "D:/cxiapu/zs/ca.crt";
: ^5 Z4 }7 H0 N, O9 q2 L% [) G. H* n
//server.AddContext(SslVerifyMode.None, "D:/cxiapu/zs/server.crt", "D:/cxiapu/zs/server.key", "mwyfeeq568", "D:/cxiapu/zs/ca.crt");! b8 }5 b U8 w, k E9 w+ K* b: M
server.Address = "0.0.0.0";
$ X% I' D7 F9 f. T; y' t% f server.Port = 5001;4 R7 \( _ E8 B7 ]% a7 Y& Y% R3 e
% s* ]. H2 g& @" h E3 ] _4 P // 启动服务端' S, b3 \6 C5 `; ^ R
Console.WriteLine(server.Start());2 u* A" W( `) f ]
Console.WriteLine("SSL服务启动 127.0.0.1:5001");, h: u. h1 ~: q. P4 N7 Z Z
2 y% h J& ]7 ?3 N/ L
+ C. h8 c# g' \/ O3 F
1 z) k" v& f7 T# C( k; k0 r9 ?: f3 x0 h. N; h5 @3 W1 p
8 L4 a) E6 N) g+ {0 W' _# g! y
// 设置事件回调) C3 ~& B4 I4 N
, x6 O- f: o' e: s
server.OnSend += (sender, connId, data) =>; v# ]+ s, o. O+ w7 K/ C( Y
{
( F1 |* G0 f4 | Console.WriteLine("发送事件"); D' t% G4 _ j0 o2 b
3 T# C5 v; c4 e+ i" M
0 F% ^8 T# t* X. D0 `! `" ~
return (0);
' k" L# |: a+ H9 A/ k6 r };; X; F: {& U4 Y5 j$ d0 D
- K [! e" g* C: h9 Y. D
server.OnHandShake += (sender, connId) =>- p( m- W; r& [/ J$ r
{
* x% g1 y. E( K7 f9 B$ p- L2 g
2 X8 v3 ~/ x5 a4 z5 ~7 L* @7 n Console.WriteLine($"握手事件");& O; u* s- I* Z8 }8 m1 |
return (0);
' H7 |& o% n" q8 s- i) \ };
5 M' j. E, X9 {5 r# K9 G* `/ ]9 y# ?
; i5 t* t! v, f4 L
server.OnAccept += (sender, connId, client) =>: H8 U0 X, N2 N0 k1 e
{
% [& z' o( m. R! X" b6 u Console.WriteLine($"客户进入: {connId}");" ~$ t6 A: A, p4 v% {: F4 v
, _" b9 y9 ^) n" t } // 发送欢迎消息给客户端
. e9 x0 k0 O7 E5 b+ n( `
: B V: z5 S# \/ q3 m
, G3 T0 o! U' N) [. W0 J //server.Send(connId, "Welcome to SSL server!");
+ | d+ s7 h! m' } return (0);
5 {. H* S- U8 G. [6 ~% P8 K };+ W7 `9 G- x( T5 Q# J# E {
server.OnReceive += (sender, connId, data) =>
5 G5 E# o, ^) N- t* h4 Y3 z5 L {
# V7 I2 ]% W0 d. f0 I) I Console.WriteLine($"数据到达: {connId}, data: {data}");; M2 o8 T8 Q0 ?2 h9 p# b8 R# m
return (0);
" Z8 g) k' H' \! W' E" X. E };
, j! D7 ]3 Y& h" r2 C; t+ Z server.OnClose += (sender, connId, operation, errorCode) =>
. O; }3 F+ o8 q& g, s' c5 S {/ W8 Q8 d1 B7 m8 K2 ]; q6 {; ^
Console.WriteLine($"客户断开:{connId}错误代码:{errorCode}");
0 ^6 @- h. b v* W
# o9 p& A9 Z7 c0 T& T, }$ _& j return (0);
8 ^: s; F! M; K( E3 {( Q& S };
$ n, X* w9 y9 g% _) Y
0 p7 ^/ N h X7 A$ Y6 L; m$ ], h" T T* Q! `0 D: H
- ?9 e6 H/ E' k0 D7 ~+ c! C: o- W# P" k, E
3 \7 j# n1 B: h& J
$ L7 m$ ]$ p" j9 C _ // 等待客户端连接并收发数据7 q- ?" ~( K+ T1 p( E0 ]% h0 S
Console.ReadKey(); S' j$ [5 q2 G4 ?' Y
% P6 V/ [7 H; [( N7 q // 停止服务端 r4 p1 D+ O2 J( q/ o2 s; ^8 ]3 m
server.Stop();
q h" Z6 k( g }& H( B5 h' c8 ]& @ A; E
}
8 k% N# I8 Y2 l$ P; [* ]}" s4 i# t. C: g/ Z _
# m% F5 G& R7 `: H5 \9 ~3 h ]0 G9 K8 m/ m3 J
|