|
悬赏5金钱未解决
TCP服务端能正常连接,但是SSL服务端连接怎么都有问题,连接进入马上就断开了,错误代码13
9 `0 G, i/ i* u0 O
1 D) Z, o0 v6 y: D! E# o% j# }6 O# f! s! p$ ]6 n
using System;+ ~/ o7 T; Z6 ^0 P' ^1 k
using System.Threading.Tasks;
% `9 M5 z% ^) q& i: dusing HPSocket;
! g, Q: x* ^4 y, T$ x0 Y. X6 rusing HPSocket.Ssl;9 M- o5 j% N) d& _
using HPSocket.Tcp;/ `( ^/ F# S0 f2 I
+ z+ r& P! j5 C" l" `namespace SslServerDemo
9 G7 X* C; ?5 h7 x0 {{
, n# @* N7 U. \! ~, Y class Program
- k" N; o# P0 B9 o' `$ L& H {8 Z' r! r, p% ?; w, e4 c
static void Main(string[] args)
5 H* i, d' O/ i4 U3 ?, ] {- s% Y8 ]& e/ h' {+ P0 Z% M, j' {, O
// 创建SSL服务端1 L; a% w6 L- [/ W- n
//var server = new SslServer();/ M& V( n; m- D, b
ISslServer server = new SslServer();
% V ^- e; M1 q' a, {/ K6 }& h% X" P4 ]2 S( {2 e9 o2 P( F7 H
// 设置证书和私钥0 W1 E/ x+ y9 x& n- o- m# Q2 [/ a% E
0 E6 T! R. u9 t2 U! F" X server.Initialize(false);
' B' r3 b Y; V; Z- \; V V server.VerifyMode = SslVerifyMode.None;
, G1 {3 O0 L, ]( k server.PemCertFile = "D:/cxiapu/zs/server.crt"; s' s9 p$ Q, @. y
server.PemKeyFile = "D:/cxiapu/zs/server.key";
( H. Q9 O/ J& S) M server.KeyPassword = "mwyfeeq568";: d0 f, A; y( Y1 r! d- g% X/ F
server.CaPemCertFileOrPath = "D:/cxiapu/zs/ca.crt";
; B4 Y; ~, a' v1 K7 s* U
& X( T! H( W4 }$ W- r: I. G ] //server.AddContext(SslVerifyMode.None, "D:/cxiapu/zs/server.crt", "D:/cxiapu/zs/server.key", "mwyfeeq568", "D:/cxiapu/zs/ca.crt");
. C2 l A9 Z$ O( b7 `. D# B5 x( A server.Address = "0.0.0.0";. V" {% l9 M% Y, |% r
server.Port = 5001;: Y3 S6 c5 y7 v( n* P! U9 h/ k1 Q+ ^
( z1 k0 | S* X- d" m // 启动服务端
7 p* ]3 S5 l/ f& h+ |& S Console.WriteLine(server.Start());- K1 }# O6 u2 j3 o' v
Console.WriteLine("SSL服务启动 127.0.0.1:5001");* A; _% U& o( p! [* S
7 k3 H( K# a' y# F
# ^8 i+ v5 t+ F2 G# i
7 }( W& q# m _) P% b& t
/ d2 `$ G4 R; q! A
) c- I. E' J$ V( v( K // 设置事件回调
( g5 K5 ?$ ]; D+ u+ \7 r+ v3 `6 p1 U, S! [' t2 @
server.OnSend += (sender, connId, data) =>1 a: H% |+ G* g( \
{
/ l3 W* Y8 x* M2 a! C, C' o7 }# J Console.WriteLine("发送事件");
( z, W! L& U5 f& [ N( O8 B: V2 K/ H8 j8 i* F+ ?
3 S- A7 o% r( u return (0);
2 v3 C8 k) H" N6 i' ?- [! m };/ h9 v* v7 k) H& ~
% a9 b# Z: {9 g9 b, w% u; f. Y server.OnHandShake += (sender, connId) =>2 t& D/ m1 z$ g' U
{
$ i! u3 ?9 H4 ]) Z4 [* a' _5 @5 M% F& m- F6 T( Q' C& q
Console.WriteLine($"握手事件");( l* ?$ v) {# [% h1 \6 @
return (0);( w% d* }5 P1 b- r4 u
};7 A r9 O! F4 T& p; k9 d* I
; B3 l3 b1 h( P( b/ ^5 b! ]( G+ w/ m) n" Q7 t7 }
server.OnAccept += (sender, connId, client) =>
5 R( x6 \# A z/ J$ x$ t0 W% O2 A6 c {+ o+ B p. {/ n4 W4 W+ C8 K
Console.WriteLine($"客户进入: {connId}");
8 ~8 c/ e o. n& c% z0 \2 }9 ?; n' l" w9 E& ]& w3 c
// 发送欢迎消息给客户端
+ H; G& U5 z9 @7 F- ^
3 v) @$ I& n( c6 c* i1 f% X1 H( c7 q' K
//server.Send(connId, "Welcome to SSL server!");1 I- d k: `8 Q
return (0);
g1 [7 ~/ e* m" v8 L( S! g };
2 k% I; ^, X1 ~) r7 z0 v% a8 s server.OnReceive += (sender, connId, data) =>( m& J8 g: T; y7 ^0 g
{# Z9 `5 L2 \& v
Console.WriteLine($"数据到达: {connId}, data: {data}");
7 l8 A/ C2 y' Z/ ]7 J return (0);: X* u$ ]0 ~4 P5 D3 U% _0 E$ D
};. f. v! J9 W# V) W$ G
server.OnClose += (sender, connId, operation, errorCode) =>
* s$ g* n; s& _% n- W& p, F {
; d4 I7 F8 d- y F: U; Z Console.WriteLine($"客户断开:{connId}错误代码:{errorCode}");
( y$ |' t4 E" N8 d( ~- @
4 t2 { b7 v3 m, G5 _* c return (0);2 {1 \; q% V% Y7 Z0 h. i z
}; ^6 h7 d: s5 j; Y- q4 U
: J1 O4 q+ x$ @ j& _2 V
# x. {' q3 m( Z- j9 A7 p# e; |( y1 g8 N9 G# Y3 ?; r
/ w6 j9 Q: \% A2 d7 w
@; y( ]" U6 `0 ?& r
; h2 D4 c7 V z' @3 S // 等待客户端连接并收发数据' Z; ?. j! G3 A/ z* t( O
Console.ReadKey();' @; |! O, z; Q0 m7 [% V( |
/ Q# T% d0 K$ Q7 L3 A% I // 停止服务端) G6 N/ D5 o" J2 L6 T
server.Stop();3 Q9 X: M0 u" s* D2 u. y2 z
}# ?9 N3 R$ C. K6 c5 ]/ w
}; m4 j0 F0 o: m+ g2 v% k" w
}
, ]% l$ E V, F( m2 T
1 g8 H0 E+ z1 k, S! t1 U, N4 [* K3 V# p! n
|
|