mirror of
https://gitee.com/jisol/jisol-game/
synced 2025-10-13 02:26:07 +00:00
提交Unity 联机Pro
This commit is contained in:
34
JNFrame2/Assets/JNGame/Util/NetTool.cs
Normal file
34
JNFrame2/Assets/JNGame/Util/NetTool.cs
Normal file
@@ -0,0 +1,34 @@
|
||||
|
||||
using System;
|
||||
using System.Net.Sockets;
|
||||
using System.Threading.Tasks;
|
||||
|
||||
namespace JNGame.Util
|
||||
{
|
||||
public class NetTool
|
||||
{
|
||||
public static async Task SendAsync(Socket socket, byte[] buffer)
|
||||
{
|
||||
// 注意:这里我们实际上并没有直接使用async/await,因为BeginSend是回调模式
|
||||
// 但我们可以使用TaskCompletionSource来桥接回调和async/await
|
||||
var tcs = new TaskCompletionSource<int>();
|
||||
|
||||
// 异步发送数据
|
||||
socket.BeginSend(buffer, 0, buffer.Length, SocketFlags.None, (ar) =>
|
||||
{
|
||||
try
|
||||
{
|
||||
int bytesSent = socket.EndSend(ar);
|
||||
tcs.SetResult(bytesSent);
|
||||
}
|
||||
catch (Exception ex)
|
||||
{
|
||||
tcs.SetException(ex);
|
||||
}
|
||||
}, null);
|
||||
|
||||
// 等待发送完成
|
||||
await tcs.Task;
|
||||
}
|
||||
}
|
||||
}
|
Reference in New Issue
Block a user