Skip to content
体验新版
项目
组织
正在加载...
登录
切换导航
打开侧边栏
若汝棋茗
RRQMSocket
提交
edbb137b
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,发现更多精彩内容 >>
未验证
提交
edbb137b
编写于
8月 18, 2022
作者:
若
若汝棋茗
提交者:
Gitee
8月 18, 2022
浏览文件
操作
浏览文件
下载
差异文件
!12 1
Merge pull request !12 from Just you ./master
上级
bef51620
3e008773
变更
1
隐藏空白更改
内联
并排
Showing
1 changed file
with
16 addition
and
5 deletion
+16
-5
src/TouchSocket/Sockets/Components/UDP/UdpSession.cs
src/TouchSocket/Sockets/Components/UDP/UdpSession.cs
+16
-5
未找到文件。
src/TouchSocket/Sockets/Components/UDP/UdpSession.cs
浏览文件 @
edbb137b
...
...
@@ -18,6 +18,7 @@ using System.Runtime.InteropServices;
using
System.Threading
;
using
TouchSocket.Core
;
using
TouchSocket.Core.ByteManager
;
using
TouchSocket.Core.Collections.Concurrent
;
using
TouchSocket.Core.Config
;
using
TouchSocket.Core.Dependency
;
using
TouchSocket.Core.Log
;
...
...
@@ -52,6 +53,7 @@ namespace TouchSocket.Sockets
/// </summary>
public
abstract
class
UdpSessionBase
:
BaseSocket
,
IUdpSession
,
IPlguinObject
{
private
readonly
ConcurrentList
<
SocketAsyncEventArgs
>
m_socketAsyncs
;
private
TouchSocketConfig
m_config
;
private
UdpDataHandlingAdapter
m_adapter
;
private
NetworkMonitor
m_monitor
;
...
...
@@ -64,6 +66,7 @@ namespace TouchSocket.Sockets
/// </summary>
public
UdpSessionBase
()
{
this
.
m_socketAsyncs
=
new
ConcurrentList
<
SocketAsyncEventArgs
>();
this
.
Protocol
=
Protocol
.
UDP
;
Socket
socket
=
new
Socket
(
AddressFamily
.
InterNetwork
,
SocketType
.
Dgram
,
ProtocolType
.
Udp
);
socket
.
ReceiveBufferSize
=
this
.
BufferLength
;
...
...
@@ -302,6 +305,11 @@ namespace TouchSocket.Sockets
}
this
.
m_monitor
=
null
;
this
.
m_serverState
=
ServerState
.
Stopped
;
foreach
(
var
item
in
this
.
m_socketAsyncs
)
{
item
.
SafeDispose
();
}
this
.
m_socketAsyncs
.
Clear
();
return
this
;
}
...
...
@@ -456,6 +464,7 @@ namespace TouchSocket.Sockets
for
(
int
i
=
0
;
i
<
threadCount
;
i
++)
{
SocketAsyncEventArgs
eventArg
=
new
SocketAsyncEventArgs
();
this
.
m_socketAsyncs
.
Add
(
eventArg
);
eventArg
.
Completed
+=
this
.
IO_Completed
;
ByteBlock
byteBlock
=
BytePool
.
GetByteBlock
(
this
.
BufferLength
);
eventArg
.
UserToken
=
byteBlock
;
...
...
@@ -472,6 +481,7 @@ namespace TouchSocket.Sockets
for
(
int
i
=
0
;
i
<
threadCount
;
i
++)
{
SocketAsyncEventArgs
eventArg
=
new
SocketAsyncEventArgs
();
this
.
m_socketAsyncs
.
Add
(
eventArg
);
eventArg
.
Completed
+=
this
.
IO_Completed
;
ByteBlock
byteBlock
=
BytePool
.
GetByteBlock
(
this
.
BufferLength
);
eventArg
.
UserToken
=
byteBlock
;
...
...
@@ -501,17 +511,18 @@ namespace TouchSocket.Sockets
{
while
(
true
)
{
ByteBlock
byteBlock
=
new
ByteBlock
();
try
{
EndPoint
endPoint
=
this
.
m_monitor
.
IPHost
.
EndPoint
;
ByteBlock
byteBlock
=
new
ByteBlock
();
int
r
=
this
.
m_monitor
.
Socket
.
ReceiveFrom
(
byteBlock
.
Buffer
,
ref
endPoint
);
byteBlock
.
SetLength
(
r
);
this
.
HandleBuffer
(
endPoint
,
byteBlock
);
}
catch
(
System
.
Exception
ex
)
{
this
.
Logger
.
Debug
(
LogType
.
Error
,
this
,
ex
.
Message
,
ex
);
byteBlock
.
Dispose
();
this
.
Logger
.
Log
(
LogType
.
Error
,
this
,
ex
.
Message
,
ex
);
break
;
}
}
...
...
@@ -531,14 +542,14 @@ namespace TouchSocket.Sockets
}
if
(
this
.
m_adapter
==
null
)
{
this
.
Logger
.
Debug
(
LogType
.
Error
,
this
,
ResType
.
NullDataAdapter
.
GetDescription
());
this
.
Logger
.
Error
(
this
,
ResType
.
NullDataAdapter
.
GetDescription
());
return
;
}
this
.
m_adapter
.
ReceivedInput
(
endPoint
,
byteBlock
);
}
catch
(
System
.
Exception
ex
)
{
this
.
Logger
.
Debu
g
(
LogType
.
Error
,
this
,
"在处理数据时发生错误"
,
ex
);
this
.
Logger
.
Lo
g
(
LogType
.
Error
,
this
,
"在处理数据时发生错误"
,
ex
);
}
finally
{
...
...
@@ -718,7 +729,7 @@ namespace TouchSocket.Sockets
}
catch
(
System
.
Exception
ex
)
{
this
.
Logger
.
Debu
g
(
LogType
.
Error
,
this
,
ex
.
Message
,
ex
);
this
.
Logger
.
Lo
g
(
LogType
.
Error
,
this
,
ex
.
Message
,
ex
);
}
}
}
...
...
编辑
预览
Markdown
is supported
0%
请重试
或
添加新附件
.
添加附件
取消
You are about to add
0
people
to the discussion. Proceed with caution.
先完成此消息的编辑!
取消
想要评论请
注册
或
登录