TCP服务端能正常连接,但是SSL服务端连接怎么都有问题,连接进入马上就断开了,错误代码13
7 N- ]% Q8 U3 a0 F- S+ i: u
; ~2 v' L# ?) N
4 L- p+ B% n' X. o4 @ |6 I) Nusing System;
- C3 x8 { V1 Husing System.Threading.Tasks;
3 j/ a8 H2 k2 h. p! q* Susing HPSocket;
( p* h5 O- r2 L$ D& a, tusing HPSocket.Ssl;) M8 ]7 Z: \* }3 t" e0 t
using HPSocket.Tcp;
- z- G% k8 L* n9 |' i4 N
! o3 I, f6 ^: Ynamespace SslServerDemo# L5 y; F/ g$ S$ Y7 D7 u% F3 o: _
{
. J! h! a: B7 f, Q' e+ _" o( f class Program
) c6 T, A( p5 ^. ~ {
- a! K+ ?# j# ?# L5 [7 i# `; { static void Main(string[] args)
& Y" n" ?$ n. g& x- v+ U( m {
, R) V: {0 `6 I0 L* d( J4 u) Z' a // 创建SSL服务端
! B4 b8 T7 E0 e% F5 t. w3 z2 m: ^ //var server = new SslServer();
6 Y/ z: a8 e, Z# h ISslServer server = new SslServer(); 5 `1 x- `; [7 v
6 b' Q( J% o! U6 j# |: y2 @ // 设置证书和私钥9 f' z+ E# O ~, [9 n- W d
* _; |. J1 k+ e e% A* ?; E l server.Initialize(false);
8 C- Q: L9 |: V$ J8 s! z$ j! ^ server.VerifyMode = SslVerifyMode.None;; a$ n/ D* t2 N: y; B; [! C" c
server.PemCertFile = "D:/cxiapu/zs/server.crt";
0 a! d" d8 s$ k- r1 } q" Q+ \% c server.PemKeyFile = "D:/cxiapu/zs/server.key";* C* X0 o5 w9 @2 D! ]
server.KeyPassword = "mwyfeeq568";
1 C& }: y) H! t' s1 T5 h5 U server.CaPemCertFileOrPath = "D:/cxiapu/zs/ca.crt";& I1 b: S* H, c8 [. A$ c
0 v0 ~2 x, Z/ d) G) E
//server.AddContext(SslVerifyMode.None, "D:/cxiapu/zs/server.crt", "D:/cxiapu/zs/server.key", "mwyfeeq568", "D:/cxiapu/zs/ca.crt");
, v) E, _, B% X+ p# _ p4 E server.Address = "0.0.0.0";
0 [# {( ~2 f% d4 P4 a G server.Port = 5001;: z+ U& l5 _$ t8 `4 K
4 l0 R5 k2 u; e // 启动服务端. c- s5 F) d3 `; n. B: u. ?4 ?) F# c
Console.WriteLine(server.Start());" S2 X7 Y! ]( F. b
Console.WriteLine("SSL服务启动 127.0.0.1:5001");! R h$ j# b0 k V
3 H3 A) u" b) @3 ~6 |& I# i1 M0 a! z
: i& p6 {. w+ W- O+ a
0 r0 [) |( z4 {' d( L( r% I8 e8 ~/ b" o5 P
, k1 ?# D W. ~0 n! G1 b- n
// 设置事件回调
; t* `6 _+ }/ e7 W
0 F" M2 `! [2 j8 l4 O+ ^" ~) f server.OnSend += (sender, connId, data) =>7 |- ^( ?4 m9 J' ~0 `
{4 R! u+ N5 |* ?7 ]
Console.WriteLine("发送事件");
9 j" b$ ~& b: b4 b, _& _( z8 p5 d8 s) }' k& A k& k
. m+ W# R+ l7 J: W, K
return (0);
) _+ N9 w/ g3 ?+ C- ~ s5 z };
~1 E; f8 e, q0 Q8 w
) T( Y+ ^% q% g0 e$ [ server.OnHandShake += (sender, connId) =>+ v1 }# ~ S7 `% O5 r n* Q
{; ]8 g! [1 e) w& u8 g+ t2 c0 U: C
+ \4 I/ {5 |7 D' |9 x
Console.WriteLine($"握手事件");# ]. e! [3 B7 Q0 e
return (0);
) T E4 n) M- [! ]* H* ^3 A };
) s4 E, h7 ?9 z; @2 N; d5 z
. b* j: z4 e' s- w( [) r3 _* b) y2 x' E- a1 s8 S
server.OnAccept += (sender, connId, client) =>
}. D7 d# H$ V$ n {. w& ~$ @+ v {1 X9 v* n' x5 g# V
Console.WriteLine($"客户进入: {connId}");
& E6 F' g/ t7 x0 o# `. T4 K# k
: M8 Q6 n- |9 A- u6 n# r // 发送欢迎消息给客户端4 C/ v, \, X* h; k" [' D
, N# q |, h$ F/ f: r% v: b2 H! V& J4 O4 t+ r2 f
//server.Send(connId, "Welcome to SSL server!");
; x4 N7 n) {, a, y% W! P8 r return (0);
: \8 R# k' d. W8 f& i };
7 |$ @/ l2 q+ M e; u. z2 p server.OnReceive += (sender, connId, data) =>
: j/ C& M+ s$ R {" f5 l" o; Z! U" N0 c
Console.WriteLine($"数据到达: {connId}, data: {data}");
& {& ]5 x9 z# s4 [& |% g+ Z return (0);
1 i R8 l7 x* V3 {% p6 ] };' O- X9 V- d% |
server.OnClose += (sender, connId, operation, errorCode) =>% [, t. ^" [8 R9 ?, y, G* ]9 a( T
{' W# ?$ G1 R7 _/ _2 N+ P( E- i: d
Console.WriteLine($"客户断开:{connId}错误代码:{errorCode}");: S: Q* ]$ }' g- r
; J' ^9 U. b0 R; R% [, r
return (0);( n1 s2 _" f( ~' {7 B7 C8 Q
};
8 Q6 C& }$ T$ k- f6 O8 w' k5 C# a D: S$ |& e7 K
) G0 H" {0 G& O3 B$ {4 {& r9 P
; E, ?9 G6 v8 m( T5 c7 z2 C
3 V& F2 M: b! u `. D# D \; u- H e3 m; F5 t6 I! p
* U" N4 {0 h2 Z9 `. S% ~ // 等待客户端连接并收发数据
# x$ o9 I9 K" A, l6 ?6 Z9 k Console.ReadKey();
) K" r; ~7 |8 B
4 F, u2 J" p) e+ J6 W6 K // 停止服务端
1 U* `; Z7 o+ ]* E8 P& H server.Stop();5 ~% W6 I# c+ k
}
8 n2 [( {) g( A, S }
9 P/ i b, S+ C+ a}
" z+ I; U2 n! }2 f$ E9 z2 B( M: z5 ~- i: t" {3 v6 p x
- j2 U3 u! G1 v) K ]; O4 D. w, Y |