TCP服务端能正常连接,但是SSL服务端连接怎么都有问题,连接进入马上就断开了,错误代码13- Q' B+ V6 Y4 n0 ]4 ^/ M2 j$ {" z
- a7 G, u4 C* L
% a! l4 e5 L+ B! W8 xusing System;8 e. U9 M: }' k# g5 `4 `& j& z
using System.Threading.Tasks;
2 Q9 w+ E/ r/ K6 {9 D# x: ~8 jusing HPSocket;7 P& l% V+ U; E8 B# f) b: x q& P% Y
using HPSocket.Ssl;
: a! A+ ~" |) O, G4 V7 O1 e" nusing HPSocket.Tcp;$ B H1 k: N$ C4 x7 O
8 V6 V) `& w7 U( S) ~0 [- ]namespace SslServerDemo
) M7 z7 W+ \2 D, S. p{0 a0 w( b, D% a! s1 |# k5 \
class Program
0 n" m' ]& w' I9 I1 \ {
( w) d" H2 A! b& z3 A4 D' f static void Main(string[] args)
~5 W+ U3 y: V% C' V% E {
5 A) k" F9 G2 | // 创建SSL服务端2 K S- Z7 [2 A" ?
//var server = new SslServer();
! M5 j( w! m' ] ISslServer server = new SslServer(); ) H- R; R5 J$ \; P, w. `- X
, f) x7 C( `; L( Q // 设置证书和私钥" d9 Z. N9 \ g2 G% p# N6 Y" u
6 k; ]# `2 }' M; ] T server.Initialize(false);
5 M! B8 A7 N0 Y" O. a server.VerifyMode = SslVerifyMode.None;
- K! A. z* w4 \# b0 n+ }: J9 u server.PemCertFile = "D:/cxiapu/zs/server.crt";; P" \: P: f8 c0 D% {
server.PemKeyFile = "D:/cxiapu/zs/server.key";3 U8 J( ^, ^- X! r. {) `5 t. J
server.KeyPassword = "mwyfeeq568";- H' I/ W1 @6 W3 u" h
server.CaPemCertFileOrPath = "D:/cxiapu/zs/ca.crt";3 T3 P6 S1 v6 R4 x7 O2 x
$ }6 l, X8 b( m# L* K3 r
//server.AddContext(SslVerifyMode.None, "D:/cxiapu/zs/server.crt", "D:/cxiapu/zs/server.key", "mwyfeeq568", "D:/cxiapu/zs/ca.crt");
6 B# h$ V$ w, C/ w server.Address = "0.0.0.0";6 G8 s G& S8 @9 D5 S
server.Port = 5001;
% A$ a2 z$ p6 u- Y7 {: n, Y \: F" |6 R4 K3 R5 s& P
// 启动服务端& J, \' b3 g2 Z0 E
Console.WriteLine(server.Start());
; }2 @2 Y: u, E: C3 X/ T$ t. F Console.WriteLine("SSL服务启动 127.0.0.1:5001");
) q' m3 {) [1 [0 }& K
. f" A# u# D* i1 @' f4 l/ S, ]) b7 {2 b# m4 {3 ?
% h+ A. I+ B4 U7 }
7 }) r7 w6 X- W& X" O& L6 ]0 h* g
, X- o3 q- I% u! r. c
// 设置事件回调: U+ R! Y# @: `1 \ t
& W9 H( B& B! {" ]* q. u
server.OnSend += (sender, connId, data) =>
\3 _+ n% r; a {' Z7 l* B8 B/ h0 X2 K
Console.WriteLine("发送事件");
. e( A% Y6 T/ R9 q- D1 K: B! Z/ ~ s
9 d$ D( Z. j% h5 s+ d3 r8 W return (0);
j, b0 b" ^5 t r" d };
. H" r3 Z: e$ ~% D# o# s
) i0 @, U( L3 }5 W7 {0 K I server.OnHandShake += (sender, connId) =>
* E- f a/ f+ y( o7 F {. }0 R" a/ T! u0 N
6 U+ @( o7 R, x& {6 x1 c9 ` Console.WriteLine($"握手事件");
) Z/ t6 ]7 J1 w9 Q1 }; h return (0);
+ C8 o- q7 n1 M };
" E2 b- {( e5 V8 O
1 y7 z( i" \4 o- B' Y0 y1 w5 x+ I8 Z7 M7 f! O
server.OnAccept += (sender, connId, client) =>
: i: K1 _4 y% B" t7 K; A7 o- Z: ` {
& w4 b. h* g4 y5 M" K. q" } Console.WriteLine($"客户进入: {connId}");( t$ k# U4 @6 w9 V! ]( L
; j& H, O+ n+ G. H& `2 C
// 发送欢迎消息给客户端3 [* F6 @6 u/ \
1 Z9 W# i! J* c7 [, e" i, d
2 Q" |# Q( Q6 m% | //server.Send(connId, "Welcome to SSL server!");, F. g! g7 J( k( Y9 @- i
return (0);" @9 k$ A; m) e
};0 G! e( S/ ?% q, |/ F
server.OnReceive += (sender, connId, data) =>( T% y/ k6 b8 H! Q
{
4 `) t" F4 ^. J) A8 Q n& T, M* M! n Console.WriteLine($"数据到达: {connId}, data: {data}");, r/ g. g- L3 s+ x% c
return (0);) J5 e! D6 v& x3 l6 [9 W3 X! P
};
. P2 V, P v. z5 V0 K1 d% Q server.OnClose += (sender, connId, operation, errorCode) =>4 C) }6 Y9 w; j; h. J% X" H5 F& U
{/ X5 d2 w1 o, s ^4 E' o- x
Console.WriteLine($"客户断开:{connId}错误代码:{errorCode}");
* Y/ C. m# U4 b1 V " c, U! d. u. ]. ?* J
return (0);$ `. ~3 n1 [* R* d! |
};% `4 r& b3 w6 `+ N+ F/ y- ]9 ~0 f
1 R1 n v+ g1 o- K
5 S% y+ {; ?; K" L* J( _8 ~4 q# @1 a. b+ O7 c
0 H4 m2 d; Y% m
! n' f7 U" S+ Y& m, W! ^ E
4 `' M. }0 t, d6 m // 等待客户端连接并收发数据* g7 G' v7 b c5 q( j; F; o
Console.ReadKey();# p! x) H/ {/ n0 Q# G. Y* Y
( g$ n- }5 X" L& W/ G // 停止服务端7 E4 r# z/ A, x; B/ |
server.Stop();. b5 G# r) W$ t$ I1 }+ ^- H$ Z
}
4 b; k, P3 q. |" } }; M; T$ j# L! r3 w
}2 `- n+ Q% r0 @( O
& Q7 A- O- E+ n7 O) e
1 F+ h, y- Q/ ^' X" |
|