TCP服务端能正常连接,但是SSL服务端连接怎么都有问题,连接进入马上就断开了,错误代码13
* L7 O+ |: C0 s3 v" r* C$ W' F6 }) g! [- q
# G* f* \6 a k' N/ S4 ?using System;
0 K. t4 V& |4 E7 \, [4 @using System.Threading.Tasks;: A+ ], f. U+ ^. ~* V) A
using HPSocket;
' x6 v+ N( f1 q. }using HPSocket.Ssl;+ i, D& r( t S4 n
using HPSocket.Tcp;
4 C8 Q/ J& C; t8 \+ l) S3 y7 Y
- a9 B% g# Q3 P% Q9 ]namespace SslServerDemo
5 h1 s" B/ P7 E. i{
" H8 E. z* d2 ^6 H$ d% ^ class Program
) r3 q, E& p5 c/ f/ s {/ r' I9 o: o, X" t9 l9 k0 T
static void Main(string[] args)
/ I/ y+ A9 j1 v0 ~ {! P3 p+ ^* _0 w0 l: V" i4 ^
// 创建SSL服务端8 G$ `0 ]5 A: k- b a/ q) d$ b, y
//var server = new SslServer(); F1 @5 T$ J+ K+ K8 j2 m L# v
ISslServer server = new SslServer(); ) l; ^$ T6 a- Z
& z" M" {4 `# L2 z P; P! m
// 设置证书和私钥; U0 Z2 W8 b: O0 T
6 x% O8 t0 o: Z
server.Initialize(false);
7 n* O& Q' T3 j server.VerifyMode = SslVerifyMode.None;) l6 ]$ w; v" R# {5 X% m
server.PemCertFile = "D:/cxiapu/zs/server.crt";6 v' U) F3 |) X: g* n) p. i
server.PemKeyFile = "D:/cxiapu/zs/server.key";
, m! e; |3 Z: q9 T' x, F ~( _) L: L4 R server.KeyPassword = "mwyfeeq568";
9 G1 X% |: g$ L4 _ server.CaPemCertFileOrPath = "D:/cxiapu/zs/ca.crt";
6 X( h% J! J i M- y# l$ V3 a' `( [/ x _" L; P
//server.AddContext(SslVerifyMode.None, "D:/cxiapu/zs/server.crt", "D:/cxiapu/zs/server.key", "mwyfeeq568", "D:/cxiapu/zs/ca.crt");
5 [, q! D" e( X$ z2 i server.Address = "0.0.0.0";4 J3 H, Q3 |5 }
server.Port = 5001; h4 K' i1 j( k! Z
# _+ L7 l% X L$ B, b. ? // 启动服务端0 l' Z" f. {5 e" }% O
Console.WriteLine(server.Start());
$ Y1 N. G9 y" ~ Console.WriteLine("SSL服务启动 127.0.0.1:5001");) o6 h" [+ D8 @8 `& R3 X+ B- }
) l% y: S1 j, z" a" D: s
# D9 e; W9 F) g, x: B' K) M, x2 V) S! G6 _' s/ e6 W
! t) P) f1 y e& ?" X
+ V4 W& J. t5 |+ Z+ N // 设置事件回调
7 Q# F; _, Z( Y, ]( W# y' W; [/ A# t6 K Z4 T
server.OnSend += (sender, connId, data) =>! q: n8 E G# K+ `( X( {% t! T
{
" S& I% w4 j( ^% t/ n Console.WriteLine("发送事件");
7 O+ _5 b; z( I! Z0 h4 P3 W% k+ R. v: |5 h: m9 M
6 l( I _8 H y, ]) @4 _" }
return (0);
5 Z4 c% K; k; J: K/ o };
% L9 n' d+ w4 }) n. }& \9 _8 l7 x8 o+ C5 Z8 Y. {2 z6 Q8 l) Q
server.OnHandShake += (sender, connId) =>2 x4 g2 y6 r& ]$ Y W
{
9 w% E0 r8 F% f6 k# F
- ?% K9 J/ h8 W& `7 ? Console.WriteLine($"握手事件");
+ r5 n# t8 u A( L& I! M return (0);6 {) O: C% C3 _- p/ U1 w. w% n
};
4 u6 @3 o" x* x. y8 X# B
& v' F1 m3 G. Z% E, `9 o1 a9 ]$ }- A
server.OnAccept += (sender, connId, client) =>
8 q- s+ D( _7 r4 Z5 X1 C, F7 i, F {
% |/ X0 ~& ], b0 m; n7 G Console.WriteLine($"客户进入: {connId}");, G. p1 v5 w/ @1 g& W5 s
) V( F) O3 s6 Y/ w // 发送欢迎消息给客户端" [0 d7 a$ M0 |6 f, W2 }# j
) |- b( w' Q3 A% i% m' M! ?
: J& G9 }) x `& ]2 s //server.Send(connId, "Welcome to SSL server!");
! Y0 f2 B+ z, x! @- ?, U7 O# g6 I return (0);! V$ [5 i: } n1 ?8 s1 g0 h* C
};# { O+ y$ w8 P# j! [
server.OnReceive += (sender, connId, data) =>
2 y4 I! G9 S" O H. z+ s* ~ {0 S6 q1 m5 }+ u, ~2 _
Console.WriteLine($"数据到达: {connId}, data: {data}");
9 a* E% M0 Z' V# l! u8 E return (0);
, O) T$ l) D% t- z: ^6 d };
) S( C9 B2 p, M+ }6 d& n0 V( O server.OnClose += (sender, connId, operation, errorCode) =>: ], _) ^2 H* _! z& c( ^
{
! l) T' }0 N6 p5 ^% q Console.WriteLine($"客户断开:{connId}错误代码:{errorCode}");! ]6 e& o# C/ i }% J0 b
1 @$ @5 s, X! {8 e; J; Z return (0);
, b) B8 {9 I( x' F, X% q3 z" ]4 o }; {% V- c! V: M* j
9 L* ?/ B$ m3 y x: U! O
0 H, ]$ Z6 ?! G5 ]7 U' H& n& ^
0 N* z9 k# G; f! Z/ J8 X+ G, A$ P6 B( H
$ H2 O' F D7 q( x2 m5 a$ p! m8 U
5 Y% `- [1 @, P! Z2 _8 t5 \ // 等待客户端连接并收发数据! {/ z5 R% o$ x/ p g# x
Console.ReadKey();# h0 ^. w$ R' c, K4 j
5 E% o: a1 Z: L- u7 J
// 停止服务端
6 \: \$ }# k8 c& R+ U. N server.Stop();
# P/ k- M7 e4 M$ Q% \, m; ^ }1 k. c$ t3 @ ~, u/ a
}( H# g' ~$ [. G$ {: x6 F
}2 T7 s( z+ ]4 ]6 U
! Y, O0 v) O! C
. i3 S8 j1 G/ h6 j4 m4 D, l |