Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
若汝棋茗
RRQMSocket
提交
8bfe27b4
RRQMSocket
项目概览
若汝棋茗
/
RRQMSocket
10 个月 前同步成功
通知
20
Star
0
Fork
0
代码
文件
提交
分支
Tags
贡献者
分支图
Diff
Issue
0
列表
看板
标记
里程碑
合并请求
0
DevOps
流水线
流水线任务
计划
Wiki
0
Wiki
分析
仓库
DevOps
项目成员
Pages
RRQMSocket
项目概览
项目概览
详情
发布
仓库
仓库
文件
提交
分支
标签
贡献者
分支图
比较
Issue
0
Issue
0
列表
看板
标记
里程碑
合并请求
0
合并请求
0
Pages
DevOps
DevOps
流水线
流水线任务
计划
分析
分析
仓库分析
DevOps
Wiki
0
Wiki
成员
成员
收起侧边栏
关闭侧边栏
动态
分支图
创建新Issue
流水线任务
提交
Issue看板
前往新版Gitcode,体验更适合开发者的 AI 搜索 >>
提交
8bfe27b4
编写于
6月 25, 2022
作者:
若汝棋茗
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
增加NATService示例
上级
8a7ea3f9
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
83 addition
and
0 deletion
+83
-0
RRQMSocket.sln
RRQMSocket.sln
+10
-0
examples/NATServiceConsoleApp/NATServiceConsoleApp.csproj
examples/NATServiceConsoleApp/NATServiceConsoleApp.csproj
+12
-0
examples/NATServiceConsoleApp/Program.cs
examples/NATServiceConsoleApp/Program.cs
+61
-0
未找到文件。
RRQMSocket.sln
浏览文件 @
8bfe27b4
...
...
@@ -38,6 +38,10 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Consul集群示例", "Consu
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "ConsulConsoleApp", "examples\ConsulConsoleApp\ConsulConsoleApp.csproj", "{657BDC94-A1A5-44B3-8FA1-41531C6F7321}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "NATService示例", "NATService示例", "{825D21FC-245C-4B6B-B237-E4ADEB2C98DC}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NATServiceConsoleApp", "examples\NATServiceConsoleApp\NATServiceConsoleApp.csproj", "{84206421-460C-4743-BA10-A749436AB4DE}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
...
...
@@ -76,6 +80,10 @@ Global
{657BDC94-A1A5-44B3-8FA1-41531C6F7321}.Debug|Any CPU.Build.0 = Debug|Any CPU
{657BDC94-A1A5-44B3-8FA1-41531C6F7321}.Release|Any CPU.ActiveCfg = Release|Any CPU
{657BDC94-A1A5-44B3-8FA1-41531C6F7321}.Release|Any CPU.Build.0 = Release|Any CPU
{84206421-460C-4743-BA10-A749436AB4DE}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{84206421-460C-4743-BA10-A749436AB4DE}.Debug|Any CPU.Build.0 = Debug|Any CPU
{84206421-460C-4743-BA10-A749436AB4DE}.Release|Any CPU.ActiveCfg = Release|Any CPU
{84206421-460C-4743-BA10-A749436AB4DE}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
...
...
@@ -94,6 +102,8 @@ Global
{2DA72D0E-DAAC-4272-A10E-1EF89439636B} = {397AE2E0-1FB6-4B71-A888-328FF7FA05B4}
{B405B0AE-6ECD-4586-B3D6-9D875073DFAF} = {517CF381-4C15-4519-9BC4-92DC4C412C8D}
{657BDC94-A1A5-44B3-8FA1-41531C6F7321} = {B405B0AE-6ECD-4586-B3D6-9D875073DFAF}
{825D21FC-245C-4B6B-B237-E4ADEB2C98DC} = {517CF381-4C15-4519-9BC4-92DC4C412C8D}
{84206421-460C-4743-BA10-A749436AB4DE} = {825D21FC-245C-4B6B-B237-E4ADEB2C98DC}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {DB787235-A13A-4A3D-B5A8-5DFEB6511EEE}
...
...
examples/NATServiceConsoleApp/NATServiceConsoleApp.csproj
0 → 100644
浏览文件 @
8bfe27b4
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>netcoreapp3.1</TargetFramework>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="RRQMSocket" Version="8.2.1" />
</ItemGroup>
</Project>
examples/NATServiceConsoleApp/Program.cs
0 → 100644
浏览文件 @
8bfe27b4
using
RRQMCore
;
using
RRQMCore.ByteManager
;
using
RRQMCore.Log
;
using
RRQMSocket
;
using
System
;
namespace
NATServiceConsoleApp
{
class
Program
{
static
void
Main
(
string
[]
args
)
{
MyNATService
service
=
new
MyNATService
();
var
config
=
new
RRQMConfig
();
config
.
SetListenIPHosts
(
new
IPHost
[]
{
new
IPHost
(
7788
)
});
service
.
Setup
(
config
);
service
.
Start
();
Console
.
WriteLine
(
"转发服务器已启动。已将7788端口转发到127.0.0.1:7789与127.0.0.1:7790地址"
);
}
}
class
MyNATService
:
NATService
{
protected
override
void
OnConnected
(
NATSocketClient
socketClient
,
RRQMEventArgs
e
)
{
base
.
OnConnected
(
socketClient
,
e
);
try
{
//此处模拟的是只要连接到NAT服务器,就转发。
//实际上,这个方法可以随时调用。
socketClient
.
AddTargetClient
(
new
RRQMConfig
().
SetRemoteIPHost
(
"127.0.0.1:7789"
));
socketClient
.
AddTargetClient
(
new
RRQMConfig
().
SetRemoteIPHost
(
"127.0.0.1:7790"
));
}
catch
(
Exception
ex
)
{
socketClient
.
Logger
.
Exception
(
ex
);
}
}
protected
override
void
OnTargetClientDisconnected
(
NATSocketClient
socketClient
,
ITcpClient
tcpClient
,
ClientDisconnectedEventArgs
e
)
{
socketClient
.
Logger
.
Message
(
$"
{
socketClient
.
IP
}
:
{
socketClient
.
Port
}
的转发客户端
{
tcpClient
.
IP
}
:
{
tcpClient
.
Port
}
已经断开连接。"
);
base
.
OnTargetClientDisconnected
(
socketClient
,
tcpClient
,
e
);
}
protected
override
byte
[]
OnNATReceived
(
NATSocketClient
socketClient
,
ByteBlock
byteBlock
,
IRequestInfo
requestInfo
)
{
//服务器收到的数据
return
base
.
OnNATReceived
(
socketClient
,
byteBlock
,
requestInfo
);
}
protected
override
byte
[]
OnTargetClientReceived
(
NATSocketClient
socketClient
,
ITcpClient
tcpClient
,
ByteBlock
byteBlock
,
IRequestInfo
requestInfo
)
{
//连接的客户端收到的数据
return
base
.
OnTargetClientReceived
(
socketClient
,
tcpClient
,
byteBlock
,
requestInfo
);
}
}
}
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录