|
悬赏5金钱未解决
TCP服务端能正常连接,但是SSL服务端连接怎么都有问题,连接进入马上就断开了,错误代码13
! T$ ]3 {0 P8 [ ~, L" `2 [) |/ L9 H) R' [; @ n
, I m, @" k+ x4 t( {
using System;. s( X" }; e R
using System.Threading.Tasks;4 ^1 y3 {1 |6 S' s7 t+ k$ m
using HPSocket;
) j1 h" I, y* M4 {using HPSocket.Ssl;
: p7 g! T7 X% Wusing HPSocket.Tcp;) j& F1 _. Q! a2 q
+ v# h0 C z: h4 J# O$ ~/ _9 c
namespace SslServerDemo
. Y9 g& `5 F! g9 Y{+ l8 o) q! n' h" A5 _" g* S Q j$ G
class Program+ l% ]* N, r) o8 M% p3 n
{
9 b% k, c* X% H5 h! a8 r static void Main(string[] args)
0 z& W9 a* C: K0 n( b, S8 Q2 S0 H {
# j% J% Y' ^( U" ^) N4 t // 创建SSL服务端* _# k; r0 I4 Y! h/ e6 W5 y
//var server = new SslServer();* \& Z& |. j. [ w5 Z# P- p
ISslServer server = new SslServer(); 7 T# x# L# O+ |. t; d
+ ]* x5 y5 A4 l' |2 h // 设置证书和私钥
D/ J- T" @) I9 N7 c; U7 `$ k4 I+ h
' q% |3 Y% j( u server.Initialize(false);
0 w) V& A* a. x* N$ S. V8 P' F server.VerifyMode = SslVerifyMode.None;7 P1 n+ N$ d/ d- }, @
server.PemCertFile = "D:/cxiapu/zs/server.crt";7 A0 a* Q' i$ Y6 W+ \
server.PemKeyFile = "D:/cxiapu/zs/server.key";
; I9 s; |: r0 X. F server.KeyPassword = "mwyfeeq568";7 y6 O* j- v Q! Y
server.CaPemCertFileOrPath = "D:/cxiapu/zs/ca.crt";
8 p5 @5 o. A- K0 U- h, ]- M3 {; H
1 s8 y9 n8 t4 X: @ |! J& h0 Y* Z //server.AddContext(SslVerifyMode.None, "D:/cxiapu/zs/server.crt", "D:/cxiapu/zs/server.key", "mwyfeeq568", "D:/cxiapu/zs/ca.crt");, K. L+ z( w1 L7 x
server.Address = "0.0.0.0";
; U2 k0 J/ d, w+ g. [- V' U server.Port = 5001;- |7 M5 ]2 w5 i3 |
2 Y( w& }* L* W. b // 启动服务端& ~# U" A1 Y( {) v; k
Console.WriteLine(server.Start());8 W% h( f8 _- y# l" G
Console.WriteLine("SSL服务启动 127.0.0.1:5001");
6 w* |# q( L4 b- l% D9 i! p f# \- c0 `; _ Z- }* C- S3 b9 U
9 }. c. W( I- K" f9 s( }5 j
& `6 {7 d" r7 L Y
% X2 V1 [% d- w8 n b1 t/ j8 f2 u. F) e
: u% X G+ k* J9 j( l" G2 N
// 设置事件回调
/ j, E. c/ N" N# _% x4 _) v7 ` Y8 N$ n7 O2 W
server.OnSend += (sender, connId, data) =>
0 Z% l# ~. L# r8 |$ [! m& N5 N) f) M {
2 J" }" ~+ O) Y M( G0 g, R Console.WriteLine("发送事件");
& {" L- @; H1 g6 s
. R" W* q* q# }
$ O" J' D( ]# T% ?+ k( ]% a6 d( F return (0);
7 X/ }9 I+ u0 R# Z* Y0 Y S };
( p1 P$ e" f' ?/ P- b
( h r$ h" v8 G% |* T/ R& X I server.OnHandShake += (sender, connId) =>5 |& x0 ?% R, R; r9 w
{4 K y% _$ r- I- O9 e
0 M+ u! d/ m5 [& v, a Console.WriteLine($"握手事件");+ f/ m3 Y& X0 e) N$ L1 p O+ L
return (0);5 j% ^1 W3 f7 j3 ?) u7 X, R. L s. N+ l
};. {, i( b% k* m, a- m- |8 `
- x; Z, g u4 n; m9 ~
% Z% w! e4 G6 ]% h: j
server.OnAccept += (sender, connId, client) =>0 d, B7 Y+ w2 ^; F4 T5 @2 {+ U
{
; d0 g- ]3 {& K B: P6 ?! p Console.WriteLine($"客户进入: {connId}");% B# ~2 V# I" o
4 K+ s# d% T2 g // 发送欢迎消息给客户端
y4 c% M! h: x0 b3 i8 }6 b( S$ X$ X* Z9 X" f+ c$ D5 z
( T" U# q9 z9 R7 L2 V i' a# C
//server.Send(connId, "Welcome to SSL server!");
# n, Q. j# R t: f return (0);* X+ D) d2 d- R: Y0 \! {7 y
};
1 L6 m7 O# n% A+ E# T server.OnReceive += (sender, connId, data) =>$ s s; O1 y2 Y
{
( W+ r: Z# `7 T- ?4 p& r Console.WriteLine($"数据到达: {connId}, data: {data}");3 A \/ O2 J$ i! A, l0 U- K" e
return (0);
& o' u1 u" V5 u+ G- X# y i2 K, f };% ?7 a' n( M( W, e
server.OnClose += (sender, connId, operation, errorCode) =>
# c# @0 D$ V. {9 z+ t" A7 I+ ~ {
( W8 {/ E9 @, d8 } Console.WriteLine($"客户断开:{connId}错误代码:{errorCode}");$ D1 A3 J# o* o1 @5 _' @
+ a3 ?& v' Q* V' v return (0);
$ D& E2 z/ r X" I m" L4 o9 Y3 G };$ r# K; t( o- f! C
1 A# g+ V3 j3 Z
. v4 @. V- S( M0 c
0 O& {5 L7 f; C
# b& c3 S4 w7 Q. ]* d
1 _8 R9 }3 t4 D4 Y
0 N# Q: X9 ?1 X/ d5 w1 z
// 等待客户端连接并收发数据
3 e7 l, k4 d! g) c- T Console.ReadKey();
5 h" Q) i, H+ C+ S
$ d8 x3 C' |3 u% R/ ^ // 停止服务端 ^' h/ ~) T% R$ E$ ^
server.Stop();5 O# t" X1 f# X" s
}+ m& H0 S7 f- D; ~6 E
}5 z P# f+ |" M% `5 E2 w
}' a, e. T+ A. A; L5 f
3 f3 X! {$ |; `# ?
+ R; |3 U2 S2 A9 b2 l, M7 {. V |
|