mirror of
https://github.com/RRQM/TouchSocket.git
synced 2025-12-19 01:46:44 +08:00
更新:demo引用
This commit is contained in:
@@ -6,6 +6,6 @@
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="TouchSocket" Version="3.0.3" />
|
||||
<PackageReference Include="TouchSocket" Version="3.0.4" />
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
|
||||
@@ -7,6 +7,6 @@
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="TouchSocket" Version="3.0.3" />
|
||||
<PackageReference Include="TouchSocket" Version="3.0.4" />
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
|
||||
@@ -9,6 +9,6 @@
|
||||
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="TouchSocket" Version="3.0.3" />
|
||||
<PackageReference Include="TouchSocket" Version="3.0.4" />
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
|
||||
@@ -8,6 +8,6 @@
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="TouchSocket" Version="3.0.3" />
|
||||
<PackageReference Include="TouchSocket" Version="3.0.4" />
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
|
||||
@@ -8,6 +8,6 @@
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="TouchSocket" Version="3.0.3" />
|
||||
<PackageReference Include="TouchSocket" Version="3.0.4" />
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
|
||||
@@ -8,6 +8,6 @@
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="TouchSocket" Version="3.0.3" />
|
||||
<PackageReference Include="TouchSocket" Version="3.0.4" />
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
|
||||
@@ -8,6 +8,6 @@
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="TouchSocket" Version="3.0.3" />
|
||||
<PackageReference Include="TouchSocket" Version="3.0.4" />
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
|
||||
@@ -8,7 +8,7 @@
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="TouchSocket" Version="3.0.3" />
|
||||
<PackageReference Include="TouchSocket" Version="3.0.4" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
|
||||
@@ -0,0 +1,13 @@
|
||||
<Project Sdk="Microsoft.NET.Sdk">
|
||||
|
||||
<PropertyGroup>
|
||||
<OutputType>Exe</OutputType>
|
||||
<TargetFramework>net8.0</TargetFramework>
|
||||
<ImplicitUsings>enable</ImplicitUsings>
|
||||
<Nullable>enable</Nullable>
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="TouchSocket" Version="3.0.4" />
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
78
examples/Adapter/JsonPackageAdapterConsoleApp/Program.cs
Normal file
78
examples/Adapter/JsonPackageAdapterConsoleApp/Program.cs
Normal file
@@ -0,0 +1,78 @@
|
||||
using System.Text;
|
||||
using TouchSocket.Core;
|
||||
using TouchSocket.Sockets;
|
||||
|
||||
namespace JsonPackageAdapterConsoleApp
|
||||
{
|
||||
internal class Program
|
||||
{
|
||||
static async Task Main(string[] args)
|
||||
{
|
||||
var service = await CreateService();
|
||||
var client = await CreateClient();
|
||||
|
||||
ConsoleLogger.Default.Info("输入任意符合Json格式的内容,回车发送(将会循环发送10次)");
|
||||
while (true)
|
||||
{
|
||||
var str = Console.ReadLine();
|
||||
for (var i = 0; i < 10; i++)
|
||||
{
|
||||
await client.SendAsync(str);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
private static async Task<TcpClient> CreateClient()
|
||||
{
|
||||
var client = new TcpClient();
|
||||
//载入配置
|
||||
await client.SetupAsync(new TouchSocketConfig()
|
||||
.SetRemoteIPHost("127.0.0.1:7789")
|
||||
.SetTcpDataHandlingAdapter(()=>new JsonPackageAdapter(Encoding.UTF8))//赋值适配,必须使用委托,且返回的适配,必须new。不能返回一个单例
|
||||
.ConfigureContainer(a =>
|
||||
{
|
||||
a.AddConsoleLogger();//添加一个日志注入
|
||||
}));
|
||||
|
||||
await client.ConnectAsync();//调用连接,当连接不成功时,会抛出异常。
|
||||
client.Logger.Info("客户端成功连接");
|
||||
return client;
|
||||
}
|
||||
|
||||
private static async Task<TcpService> CreateService()
|
||||
{
|
||||
var service = new TcpService();
|
||||
service.Received = async (client, e) =>
|
||||
{
|
||||
//从客户端收到信息
|
||||
if (e.RequestInfo is JsonPackage jsonPackage)
|
||||
{
|
||||
StringBuilder sb = new StringBuilder();
|
||||
sb.Append($"已从{client.Id}接收到数据。");
|
||||
sb.Append($"数据类型:{jsonPackage.Kind},");
|
||||
sb.Append($"数据:{jsonPackage.DataString},");
|
||||
sb.Append($"杂质数据:{jsonPackage.ImpurityData.Span.ToString(Encoding.UTF8)}");
|
||||
client.Logger.Info(sb.ToString());
|
||||
}
|
||||
|
||||
|
||||
await e.InvokeNext();
|
||||
};
|
||||
|
||||
await service.SetupAsync(new TouchSocketConfig()//载入配置
|
||||
.SetListenIPHosts("tcp://127.0.0.1:7789", 7790)//同时监听两个地址
|
||||
.SetTcpDataHandlingAdapter(() => new JsonPackageAdapter(Encoding.UTF8))
|
||||
.ConfigureContainer(a =>
|
||||
{
|
||||
a.AddConsoleLogger();//添加一个控制台日志注入(注意:在maui中控制台日志不可用)
|
||||
})
|
||||
.ConfigurePlugins(a =>
|
||||
{
|
||||
//a.Add();//此处可以添加插件
|
||||
}));
|
||||
await service.StartAsync();//启动
|
||||
service.Logger.Info("服务器已启动");
|
||||
return service;
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -8,6 +8,6 @@
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="TouchSocket" Version="3.0.3" />
|
||||
<PackageReference Include="TouchSocket" Version="3.0.4" />
|
||||
</ItemGroup>
|
||||
</Project>
|
||||
|
||||
@@ -9,12 +9,12 @@
|
||||
</PropertyGroup>
|
||||
|
||||
<ItemGroup>
|
||||
<PackageReference Include="TouchSocket.JsonRpc" Version="3.0.3" />
|
||||
<PackageReference Include="TouchSocket.Rpc" Version="3.0.3" />
|
||||
<PackageReference Include="TouchSocket.WebApi" Version="3.0.3" />
|
||||
<PackageReference Include="TouchSocket.XmlRpc" Version="3.0.3" />
|
||||
<PackageReference Include="TouchSocketPro" Version="3.0.3" />
|
||||
<PackageReference Include="TouchSocketPro.Dmtp" Version="3.0.3" />
|
||||
<PackageReference Include="TouchSocket.JsonRpc" Version="3.0.4" />
|
||||
<PackageReference Include="TouchSocket.Rpc" Version="3.0.4" />
|
||||
<PackageReference Include="TouchSocket.WebApi" Version="3.0.4" />
|
||||
<PackageReference Include="TouchSocket.XmlRpc" Version="3.0.4" />
|
||||
<PackageReference Include="TouchSocketPro" Version="3.0.4" />
|
||||
<PackageReference Include="TouchSocketPro.Dmtp" Version="3.0.4" />
|
||||
</ItemGroup>
|
||||
|
||||
</Project>
|
||||
Reference in New Issue
Block a user