提交 0dfbc002 编写于 作者: 若汝棋茗

U3D示例增加Udp、UdpRpc示例

上级 76c63548

Microsoft Visual Studio Solution File, Format Version 12.00
# Visual Studio Version 17
VisualStudioVersion = 17.3.32811.315
MinimumVisualStudioVersion = 10.0.40219.1
Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "UnityServerConsoleApp", "UnityServerConsoleApp\UnityServerConsoleApp.csproj", "{92C0DFB7-E3EC-499D-85C7-69A3ED344264}"
EndProject
Global
GlobalSection(SolutionConfigurationPlatforms) = preSolution
Debug|Any CPU = Debug|Any CPU
Release|Any CPU = Release|Any CPU
EndGlobalSection
GlobalSection(ProjectConfigurationPlatforms) = postSolution
{92C0DFB7-E3EC-499D-85C7-69A3ED344264}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
{92C0DFB7-E3EC-499D-85C7-69A3ED344264}.Debug|Any CPU.Build.0 = Debug|Any CPU
{92C0DFB7-E3EC-499D-85C7-69A3ED344264}.Release|Any CPU.ActiveCfg = Release|Any CPU
{92C0DFB7-E3EC-499D-85C7-69A3ED344264}.Release|Any CPU.Build.0 = Release|Any CPU
EndGlobalSection
GlobalSection(SolutionProperties) = preSolution
HideSolutionNode = FALSE
EndGlobalSection
GlobalSection(ExtensibilityGlobals) = postSolution
SolutionGuid = {324D4D22-4EC7-457E-BD31-E23431C21FC4}
EndGlobalSection
EndGlobal
......@@ -23,16 +23,59 @@ namespace UnityServerConsoleApp
{
//unitypackage在本级目录下。
//已发布的apk和exe客户端也在本级目录下。
StartTcpService();
StartTcpRpcService();
StartTcpService(7789);
StartTcpRpcService(7790);
StartUdpService(7791);
StartUdpRpc(7792);
Console.ReadKey();
}
static void StartTcpRpcService()
static void StartUdpRpc(int port)
{
var service = new UdpTouchRpc();
TouchSocketConfig config = new TouchSocketConfig()//配置
.SetBindIPHost(new IPHost(port))
.ConfigureContainer(a =>
{
a.SetSingletonLogger<ConsoleLogger>();//注册一个日志组
})
.ConfigureRpcStore(a =>
{
a.RegisterServer<MyRpcServer>();//注册服务
});
service.Setup(config)
.Start();
service.Logger.Info($"{service.GetType().Name}已启动,监听端口:{port}");
}
static void StartUdpService(int port)
{
UdpSession udpService = new UdpSession();
udpService.Received += (remote, byteBlock, requestInfo) =>
{
udpService.Send(remote, byteBlock);
Console.WriteLine($"收到:{Encoding.UTF8.GetString(byteBlock.Buffer, 0, byteBlock.Len)}");
};
udpService.Setup(new TouchSocketConfig()
.SetBindIPHost(new IPHost(port))
.SetUdpDataHandlingAdapter(() => new NormalUdpDataHandlingAdapter())//常规udp
//.SetUdpDataHandlingAdapter(() => new UdpPackageAdapter())//Udp包模式,支持超过64k数据。
.ConfigureContainer(a =>
{
a.SetSingletonLogger<ConsoleLogger>();//添加一个日志注入
}))
.Start();
udpService.Logger.Info($"UdpService已启动,端口:{port}");
}
static void StartTcpRpcService(int port)
{
var service = new TcpTouchRpcService();
TouchSocketConfig config = new TouchSocketConfig()//配置
.SetListenIPHosts(new IPHost[] { new IPHost(7790) })
.SetListenIPHosts(new IPHost[] { new IPHost(port) })
.SetThreadCount(50)
.UseDelaySender()
.UsePlugin()
......@@ -53,7 +96,7 @@ namespace UnityServerConsoleApp
service.Setup(config)
.Start();
service.Logger.Info($"{service.GetType().Name}已启动,监听端口:{7790}");
service.Logger.Info($"{service.GetType().Name}已启动,监听端口:{port}");
string code = service.RpcStore.GetProxyCodes("TcpRpcProxy");
File.WriteAllText("TcpRpcProxy.cs", code);
......@@ -61,11 +104,11 @@ namespace UnityServerConsoleApp
//service.RpcStore.ShareProxy(new IPHost(8848));
}
static void StartTcpService()
static void StartTcpService(int port)
{
TcpService service = new TcpService();
service.Setup(new TouchSocketConfig()//载入配置
.SetListenIPHosts(new IPHost[] { new IPHost(7789) })//同时监听两个地址
.SetListenIPHosts(new IPHost[] { new IPHost(port) })//同时监听两个地址
.SetMaxCount(10000)
.SetThreadCount(10)
.UsePlugin()
......@@ -79,7 +122,7 @@ namespace UnityServerConsoleApp
a.SetSingletonLogger<ConsoleLogger>();//添加一个日志注入
}))
.Start();//启动
service.Logger.Info("Tcp服务器已启动,端口7789");
service.Logger.Info($"Tcp服务器已启动,端口{port}");
}
}
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册