Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
若汝棋茗
RRQMSocket
提交
bf3bb0d4
RRQMSocket
项目概览
若汝棋茗
/
RRQMSocket
11 个月 前同步成功
通知
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 搜索 >>
提交
bf3bb0d4
编写于
1月 06, 2023
作者:
若
若汝棋茗
浏览文件
操作
浏览文件
下载
电子邮件补丁
差异文件
添加tcp命令行插件示例
上级
116d8d04
变更
3
隐藏空白更改
内联
并排
Showing
3 changed file
with
116 addition
and
1 deletion
+116
-1
TouchSocketExample.sln
TouchSocketExample.sln
+11
-1
examples/Tcp简单示例/Tcp命令行执行插件/TcpCommandLineConsoleApp/Program.cs
...es/Tcp简单示例/Tcp命令行执行插件/TcpCommandLineConsoleApp/Program.cs
+91
-0
examples/Tcp简单示例/Tcp命令行执行插件/TcpCommandLineConsoleApp/TcpCommandLineConsoleApp.csproj
.../TcpCommandLineConsoleApp/TcpCommandLineConsoleApp.csproj
+14
-0
未找到文件。
TouchSocketExample.sln
浏览文件 @
bf3bb0d4
...
...
@@ -158,7 +158,11 @@ Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "包序列化模式", "包
EndProject
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "PackageConsoleApp", "examples\包序列化模式\PackageConsoleApp\PackageConsoleApp.csproj", "{BDF15495-BC59-4A66-8643-F8166907B28E}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "AdapterTesterConsoleApp", "examples\Adapter简单示例\AdapterTesterConsoleApp\AdapterTesterConsoleApp.csproj", "{BF997370-81F3-4DCA-81A3-AF7D9050ABB1}"
Project("{9A19103F-16F7-4668-BE54-9A1E7A4F7556}") = "AdapterTesterConsoleApp", "examples\Adapter简单示例\AdapterTesterConsoleApp\AdapterTesterConsoleApp.csproj", "{BF997370-81F3-4DCA-81A3-AF7D9050ABB1}"
EndProject
Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Tcp命令行执行插件", "Tcp命令行执行插件", "{5B8D8451-E920-42E5-9F6A-D6D1238A24B4}"
EndProject
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "TcpCommandLineConsoleApp", "examples\Tcp简单示例\Tcp命令行执行插件\TcpCommandLineConsoleApp\TcpCommandLineConsoleApp.csproj", "{15554D7C-32B3-48A2-9475-2364A721A1F7}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
...
...
@@ -354,6 +358,10 @@ Global
{BF997370-81F3-4DCA-81A3-AF7D9050ABB1}.Debug|Any CPU.Build.0 = Debug|Any CPU
{BF997370-81F3-4DCA-81A3-AF7D9050ABB1}.Release|Any CPU.ActiveCfg = Release|Any CPU
{BF997370-81F3-4DCA-81A3-AF7D9050ABB1}.Release|Any CPU.Build.0 = Release|Any CPU
{15554D7C-32B3-48A2-9475-2364A721A1F7}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{15554D7C-32B3-48A2-9475-2364A721A1F7}.Debug|Any CPU.Build.0 = Debug|Any CPU
{15554D7C-32B3-48A2-9475-2364A721A1F7}.Release|Any CPU.ActiveCfg = Release|Any CPU
{15554D7C-32B3-48A2-9475-2364A721A1F7}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
...
...
@@ -414,6 +422,8 @@ Global
{0E76C63C-66CC-43BE-A6AF-A7862E669C2F} = {14C9DCF7-767F-48F5-956F-782161BA2420}
{BDF15495-BC59-4A66-8643-F8166907B28E} = {55970A52-E1A6-493B-91C4-9F4EE3E888B6}
{BF997370-81F3-4DCA-81A3-AF7D9050ABB1} = {F8C07F29-7233-4FD3-A3DC-45963071E20A}
{5B8D8451-E920-42E5-9F6A-D6D1238A24B4} = {FB46E926-0EEC-488C-B950-A16D2E7F694B}
{15554D7C-32B3-48A2-9475-2364A721A1F7} = {5B8D8451-E920-42E5-9F6A-D6D1238A24B4}
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {DB787235-A13A-4A3D-B5A8-5DFEB6511EEE}
...
...
examples/Tcp简单示例/Tcp命令行执行插件/TcpCommandLineConsoleApp/Program.cs
0 → 100644
浏览文件 @
bf3bb0d4
using
TouchSocket.Core
;
using
TouchSocket.Sockets
;
namespace
TcpCommandLineConsoleApp
{
internal
class
Program
{
static
void
Main
(
string
[]
args
)
{
TcpService
service
=
new
TcpService
();
var
config
=
new
TouchSocketConfig
();
config
.
SetListenIPHosts
(
new
IPHost
[]
{
new
IPHost
(
"127.0.0.1:7789"
),
new
IPHost
(
7790
)
})
//同时监听两个地址
.
SetDataHandlingAdapter
(()
=>
{
//return new TerminatorPackageAdapter(1024, "\r\n");//命令行中使用\r\n结尾
return
new
NormalDataHandlingAdapter
();
//亦或者省略\r\n,但此时调用方不能高速调用,会粘包
})
.
UsePlugin
()
.
ConfigureContainer
(
a
=>
{
a
.
AddConsoleLogger
();
})
.
ConfigurePlugins
(
a
=>
{
a
.
Add
<
MyCommandLinePlugin
>();
});
//载入配置
service
.
Setup
(
config
);
//启动
service
.
Start
();
service
.
Logger
.
Info
(
"服务器成功启动。"
);
service
.
Logger
.
Info
(
"使用:“Add 10 20”测试"
);
service
.
Logger
.
Info
(
"使用:“MUL 10 20”测试"
);
service
.
Logger
.
Info
(
"使用:“Exc”测试异常"
);
Console
.
ReadKey
();
}
}
/// <summary>
/// 命令执行插件。方法必须以Command结尾。
/// </summary>
class
MyCommandLinePlugin
:
TcpCommandLinePlugin
{
private
readonly
ILog
logger
;
public
MyCommandLinePlugin
(
ILog
logger
)
:
base
(
logger
)
{
this
.
ReturnException
=
true
;
//表示执行异常的时候,是否返回异常信息
this
.
logger
=
logger
;
}
/// <summary>
/// 加法
/// </summary>
/// <param name="a"></param>
/// <param name="b"></param>
/// <returns></returns>
public
int
AddCommand
(
int
a
,
int
b
)
{
this
.
logger
.
Info
(
$"执行
{
nameof
(
AddCommand
)}
"
);
return
a
+
b
;
}
/// <summary>
/// 乘法,并且获取调用者信息
/// </summary>
/// <param name=""></param>
/// <param name="a"></param>
/// <param name="b"></param>
/// <returns></returns>
public
int
MULCommand
(
ISocketClient
socketClient
,
int
a
,
int
b
)
{
this
.
logger
.
Info
(
$"
{
socketClient
.
IP
}
:
{
socketClient
.
Port
}
执行
{
nameof
(
MULCommand
)}
"
);
return
a
*
b
;
}
/// <summary>
/// 测试异常
/// </summary>
/// <exception cref="Exception"></exception>
public
void
ExcCommand
()
{
throw
new
Exception
(
"我异常了"
);
}
}
}
\ No newline at end of file
examples/Tcp简单示例/Tcp命令行执行插件/TcpCommandLineConsoleApp/TcpCommandLineConsoleApp.csproj
0 → 100644
浏览文件 @
bf3bb0d4
<Project Sdk="Microsoft.NET.Sdk">
<PropertyGroup>
<OutputType>Exe</OutputType>
<TargetFramework>net6.0</TargetFramework>
<ImplicitUsings>enable</ImplicitUsings>
<Nullable>enable</Nullable>
</PropertyGroup>
<ItemGroup>
<PackageReference Include="TouchSocket" Version="1.0.0" />
</ItemGroup>
</Project>
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录