找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 中文模块 Demo
查看: 609|回复: 0

[C#] 谁能帮忙写一个C#调用hpsocket.net的例子啊求求了

[复制链接]
发表于 2023-4-19 14:05:32 | 显示全部楼层 |阅读模式
悬赏5金钱未解决
TCP服务端能正常连接,但是SSL服务端连接怎么都有问题,连接进入马上就断开了,错误代码13/ b# Y  @7 \% o% `8 h( X7 D
2 V& I2 ^2 g5 h" E# _7 U

5 P7 I4 M' D: k/ R4 ?# @using System;  B! [4 J( U: _+ [
using System.Threading.Tasks;
8 o0 [* L) u# Jusing HPSocket;% W2 S/ p6 K( C( A& J
using HPSocket.Ssl;0 q- M% x% C) l
using HPSocket.Tcp;
9 C) h- |- D: ]+ S, R: G
, k9 l' m5 G! k1 M: |1 Hnamespace SslServerDemo7 I8 K& R$ {% N6 f# R. L
{
+ d  a6 c/ K' I    class Program
% Z$ o) G% X5 o. {% ?$ V- I* `5 g    {
$ J+ V+ R5 j9 v  l! r/ [! E        static void Main(string[] args)9 h; l% e# Q# z3 m- v1 \
        {3 O/ p' f0 j" L( \- ~
            // 创建SSL服务端
4 W0 i( S# u- d0 t2 W4 v            //var server = new SslServer();% c, X& N: e% e' Y. F$ o( y
            ISslServer server = new SslServer();
" s* X$ N7 a" p" B7 x2 B* @5 Z/ b6 ]/ A8 K% q- @
            // 设置证书和私钥; d% J* |0 o8 A6 i, h5 w% i
           
) p2 K" J) j( D! d, g3 L% x            server.Initialize(false);  p, l% k: K5 U3 K/ g7 e
            server.VerifyMode = SslVerifyMode.None;
) a& ]/ g+ h, D: j1 x/ A            server.PemCertFile = "D:/cxiapu/zs/server.crt";
  P: v, W& l% b            server.PemKeyFile = "D:/cxiapu/zs/server.key";% U% Q3 |& O, k9 x- i& D
            server.KeyPassword = "mwyfeeq568";% W# Q1 @0 i0 Y
            server.CaPemCertFileOrPath = "D:/cxiapu/zs/ca.crt";
3 S& e% J' A+ V) K
+ {4 W2 o7 u3 P: m            //server.AddContext(SslVerifyMode.None, "D:/cxiapu/zs/server.crt", "D:/cxiapu/zs/server.key", "mwyfeeq568", "D:/cxiapu/zs/ca.crt");
0 G0 @; v* Q! q            server.Address = "0.0.0.0";. u7 O/ a& A8 r: b, V7 y, p
            server.Port = 5001;
% F, ~8 A, k8 `8 t; ^# {, L$ h# w% \2 H+ P1 I8 d
            // 启动服务端
% {9 L7 }6 ]8 U! |/ t4 \            Console.WriteLine(server.Start());7 D0 V" x, f' z
            Console.WriteLine("SSL服务启动 127.0.0.1:5001");
/ R0 k* C; {0 t. `8 z; M$ B
# A; |) Z# P6 N0 k+ l$ X- P4 `

1 @1 R. _% w: u9 j' B
5 D  W4 O1 o; V0 u
' Z6 I5 D' x6 }& k. k4 c            // 设置事件回调
4 n9 {- X  U6 k( A. L7 E
: P! ]; s* e* ^8 [* |4 t  Y            server.OnSend += (sender, connId, data) =>* W+ y/ n9 [  V8 G
            {
4 {  s1 t2 p- P: S4 U                Console.WriteLine("发送事件");  K$ R  D! d$ `* f3 @
- u5 e: e; G0 F" j! d

: n6 w# }$ `8 y( C% B! w, p            return (0);   
+ I, N3 W6 x# H  |            };
. u$ \( e8 X# B; ~- [( r# a* A1 P  i8 A7 N2 b
            server.OnHandShake += (sender, connId) =>
" t: K& P$ H& Y            {
3 _$ O' h3 }+ P$ j; Z5 O% ~5 Z; _; d  Z4 @, N, ?. h
                Console.WriteLine($"握手事件");9 Y; {. A4 g3 C, B& J6 E/ O
                return (0);$ m5 s+ M9 t) E% D) q, h5 c7 s) Z
            };: P5 b: j) \" F4 D/ b2 c  V1 X3 Y
* D0 ?% P2 j( f4 ]' z7 @0 p! C3 U& `

1 u6 [: w6 n1 @# [            server.OnAccept += (sender, connId, client) =>- b0 ]* K7 f( P( y7 M/ U
            {( r! O+ m+ \6 [9 b. o" u
                Console.WriteLine($"客户进入: {connId}");
2 Z. O/ ^/ G( V9 Z, Q
/ p( }$ a1 \* S" n0 {                // 发送欢迎消息给客户端' T% a& {3 X& Y! h4 |% V
$ r6 _  z; W+ N4 a/ j" f
" \4 v; J0 a" I1 ]  Y2 w/ R
                //server.Send(connId, "Welcome to SSL server!");) d; u3 o) }! f- M
                return (0);
! d& @+ d$ {0 j5 M9 J5 ]( w* P& D            };( K0 @/ I4 R) @& ~$ K% `7 b; I
            server.OnReceive += (sender, connId, data) =>- L9 U( l: _" ], v# x% S! \/ Q
            {
3 N: m1 v9 }) z$ U" _3 C7 T1 z                Console.WriteLine($"数据到达: {connId}, data: {data}");
8 g! D% p- _5 @4 ]                return (0);
# y3 b9 k* b( p0 L6 f3 P9 B            };% k/ j6 ?8 P* D
            server.OnClose += (sender, connId, operation, errorCode) =>
& l+ n0 e! E' w/ _  s! l            {
. v$ A# g/ @) [% z                Console.WriteLine($"客户断开:{connId}错误代码:{errorCode}");0 O4 |$ q. f0 Y. Z% g) i" f: o7 Y
                 ( E( T5 [$ e: ~5 K  \- w. u
                return (0);
0 C6 R. z9 z' H$ X) Q) }            };: L4 E, P' X+ b" Q0 M, i+ q

% M( V6 w# J7 B7 F% W( S, ^. K& Z/ j; V6 l; \6 s5 a
) c8 P  V% P) R. V$ G

* L0 s$ A, O' n& |; o& `6 h% ^5 K . q5 F2 U7 H" x) e6 c) [
8 N0 N6 P: l6 d$ l  u) F# u4 Y! y
            // 等待客户端连接并收发数据
( c1 V5 Z5 B. H0 l            Console.ReadKey();
; l% h$ Z! o, C  ~2 Q5 Y* {5 |- ^2 L+ ]  Y' O7 Y  t
            // 停止服务端
& x3 l; x4 B: w% Q: h( ~, G            server.Stop();, z5 d; a0 h6 S; Y) ]7 S' @( q" {! U
        }
0 m6 f; r) [+ {2 _# {" q    }: F" v3 ~# Z3 e2 s
}! e; l# J( ~. z. _: p2 x1 o
) q9 N& B6 s) y. A7 u6 U

; Q) S! E+ e" K2 U3 D7 B, o' k1 u

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关闭

站长推荐上一条 /4 下一条

QQ|Archiver|手机版|小黑屋| HPsocket-国产高性能通讯框架

( 豫ICP备19038015号-1 ) GMT+8, 2025-12-18 16:59 Powered by Discuz! X3.5 *// |网站地图

快速回复 返回顶部 返回列表