首页
关于
Search
1
Godot服务器 C#
5 阅读
2
新电脑必安装软件1
1 阅读
默认分类
登录
Search
馋
累计撰写
3
篇文章
累计收到
0
条评论
首页
栏目
默认分类
页面
关于
搜索到
3
篇与
的结果
2025-09-29
新电脑必安装软件1
Game Runtime Libraries Package软件简介:这或许是你能找到的收集较为完整、而且免费游戏运行库合集了,其实不止于游戏,其中很多组件即使不玩游戏也推荐安装,他支持主流操作系统,从 Windows XP – Windows 11 都支持,并且能自动检测并勾选推荐的运行库组件,方便快捷。本版特点:By: mefcl 整合常见最新游戏所需运行库根据系统自动勾选推荐的版本纯净安装包无病毒和弹窗行为支持静默安装,静默参数:/S吾爱版去除了个人相关连接。更新日志:{timeline}{timeline-item color="#19be6b"}v6.8.25.0926 (2025.09.26)新增 Microsoft Visual C++ 2015-2019 Redist x86 Ver 14.29.30153修改:VC 2015-2022 14.50.x 安装到 Windows 10 和 11 ,Windows 10 以下安装 14.44.35211.0修正 .NET Framework 1.1 偶发安装卡住问题修正 .NET Framework 3.5 某些时候安装不成功问题{/timeline-item}{timeline-item color="#19be6b"}v6.7.25.0910 (2025.09.11)更新 Microsoft .NET Framework Ver 8.0.20.35221更新 Microsoft .NET Framework Ver 9.0.9.35221更新 Microsoft Visual C++ 2015-2022 Redist Ver 14.50.35503.0{/timeline-item}{timeline-item color="#19be6b"}v6.5.25.0709 (2025.07.09)更新 Microsoft Visual C++ 2015-2022 Redist Ver 14.44.35211.0更新 Microsoft .NET Framework Ver 8.0.18.35017更新 Microsoft .NET Framework Ver 9.0.7.35017{/timeline-item}{timeline-item color="#19be6b"}v6.4.25.0614 (2025.06.14)更新 Microsoft Visual C++ 2015-2022 Redist Ver 14.44.35208.0更新 Microsoft .NET Framework Ver 8.0.17.34917更新 Microsoft .NET Framework Ver 9.0.6.34917新增 Microsoft Edge WebView2 Runtime Ver 109.0.1518.140{/timeline-item}{timeline-item color="#19be6b"}v6.3.25.0514 (2025.05.14)更新 Microsoft Visual C++ 2015-2022 Redist Ver 14.44.35112.1更新 Microsoft .NET Framework Ver 8.0.16.34817更新 Microsoft .NET Framework Ver 9.0.5.34816{/timeline-item}{timeline-item color="#19be6b"}v6.2.25.0409 (2025.04.09)更新 Rockstar Games Social Club Ver 2.0.5.6更新 Microsoft Visual C++ 2015-2022 Redist Ver 14.44.35026.0更新 Microsoft .NET Framework Ver 8.0.15.34718更新 Microsoft .NET Framework Ver 9.0.4.34714{/timeline-item}{timeline-item color="#19be6b"}v6.1.25.0312 (2025.03.12)更新 Microsoft .NET Framework Ver 8.0.14.34613更新 Microsoft .NET Framework Ver 9.0.3.34613更新 DirectXRepair Ver 4.4.0.39772更新 Microsoft Visual C++ 2015-2022 Redist Ver 14.44.34918.1已购买 DirectXRepair 静默安装授权,实现无解面安装脚本小修改{/timeline-item}{timeline-item color="#19be6b"}v5.2.25.0212 (2025.02.12)更新 Unity Web Player 5.3.8f2更新 Microsoft Visual C++ 2015-2022 Redist Ver 14.44.34823.0更新 Microsoft .NET Framework Ver 8.0.13.34517更新 Microsoft .NET Framework Ver 9.0.2.34517{/timeline-item}{/timeline}支持系统:精力所限,组件自动判断仅支持以下系统版本。Windows XP 32位Windows 7 32位、64位Windows 8 32位、64位Windows 8.1 32位、64位Windows 10 32位、64位Windows 11 32位、64位JAVA 运行库和 Adobe flash Play,已经根据投票结果删除。注意事项:1.由于组件众多,安装时请耐心等待,特别是 .NET 组件安装会比较慢2.建议保持默认勾选方式安装(当然你清楚系统支持和组件之间支持关系除外)3.安装前请保存进行中的工作,并且退出所有其他应用,避免麻烦。{cloud title="萌盘" type="default" url="https://pan.moe/s/826bt0" password="lugpdq"/}
2025年09月29日
1 阅读
0 评论
0 点赞
2025-09-16
此内容被密码保护
加密文章,请前往内页查看详情
2025年09月16日
5 阅读
0 评论
0 点赞
2025-09-16
Godot服务器 C#
using System; using System.Net; using System.Net.Sockets; using AI.scripts.Managers.Server.Net; using Godot; using Protocol.Dto; using 框架.Event; using Semaphore = System.Threading.Semaphore; namespace 服务器.Server.Net; public class ServerPeer { private Socket _socket; private Semaphore _semaphore; private ClientPeerPool _clientPeerPool; private IApplication _application; public void SetApplication(IApplication application) { _application = application; } public void StartServer(string ip, int port, int maxClients) { try { _clientPeerPool = new ClientPeerPool(maxClients); _semaphore = new Semaphore(maxClients, maxClients); _socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp); // 创建初始化客户端池 for (var i = 0; i < maxClients; i++) { ClientPeer clientPeer = new ClientPeer(); EventCenter.Instance.AddEventListener<ClientPeer, NetMsg>("Receive", ReceiveProcess); clientPeer.ReceiveArgs.Completed += ReceiveArgsOnCompleted; _clientPeerPool.Enqueue(clientPeer); } _socket.Bind(new IPEndPoint(IPAddress.Parse(ip), port)); _socket.Listen(maxClients); GD.Print("[服务器]启动"); AcceptClient(); } catch (SocketException e) { GD.PrintErr($"[服务器]报错位置:StartServer {e.Message}"); } } #region 接收客户端连接 /// <summary> /// 接受客户端连接 /// </summary> /// <param name="e"></param> private void AcceptClient(SocketAsyncEventArgs e = null) { if (e == null) { e = new SocketAsyncEventArgs(); e.Completed += EOnCompleted; } var result = _socket.AcceptAsync(e); if (result == false) { ProcessAccept(e); } } /// <summary> /// 处理客户端连接完成事件 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void EOnCompleted(object sender, SocketAsyncEventArgs e) { ProcessAccept(e); } /// <summary> /// 处理客户端连接 /// </summary> /// <param name="e"></param> private void ProcessAccept(SocketAsyncEventArgs e) { _semaphore.WaitOne(); ClientPeer client = _clientPeerPool.Dequeue(); client.ClientSocket = e.AcceptSocket; GD.Print($"[服务器]{client.ClientSocket?.RemoteEndPoint} 客户端连入"); StartReceive(client); e.AcceptSocket = null; AcceptClient(e); } #endregion #region 接收数据 private void StartReceive(ClientPeer client) { try { var result = client.ClientSocket.ReceiveAsync(client.ReceiveArgs); if (result == false) { ProcessReceive(client.ReceiveArgs); } } catch (SocketException e) { GD.PrintErr($"[服务器]报错位置:StartReceive {e.Message}"); } } /// <summary> /// 处理接收数据完成事件 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void ReceiveArgsOnCompleted(object sender, SocketAsyncEventArgs e) { ProcessReceive(e); } /// <summary> /// 处理接收数据 /// </summary> /// <param name="e"></param> private void ProcessReceive(SocketAsyncEventArgs e) { var client = e.UserToken as ClientPeer; if (client?.ReceiveArgs.SocketError == SocketError.Success && client.ReceiveArgs.BytesTransferred > 0) { var packet = new byte[client.ReceiveArgs.BytesTransferred]; if (client.ReceiveArgs.Buffer == null) return; Buffer.BlockCopy(client.ReceiveArgs.Buffer, 0, packet, 0, client.ReceiveArgs.BytesTransferred); client.ProcessReceive(packet); StartReceive(client); } else //断开连接 { if (client?.ReceiveArgs.BytesTransferred == 0) { // 主动断开连接 if (client.ReceiveArgs.SocketError == SocketError.Success) { DisconnectClient(client, "主动断开连接"); } else if (client.ReceiveArgs.SocketError == SocketError.ConnectionReset) { DisconnectClient(client, client.ReceiveArgs.SocketError.ToString()); } } } } /// <summary> /// 处理一条消息 /// </summary> /// <param name="client"></param> /// <param name="msg"></param> private void ReceiveProcess(ClientPeer client, NetMsg msg) { // 应用层 处理消息 _application.Receive(client, msg); } #endregion #region 断开连接 /// <summary> /// 断开客户端连接 /// </summary> /// <param name="client"></param> /// <param name="reason"></param> private void DisconnectClient(ClientPeer client, string reason) { try { if (client == null) GD.PrintErr("客户端为空"); GD.Print($"[服务器]{client.ClientSocket?.RemoteEndPoint}客户端断开连接:{reason}"); _application.Disconnect(client); //客户端断开连接 client.Disconnect(); //将断开连接的客户端添加到客户端池中 _clientPeerPool.Enqueue(client); //释放信号量 _semaphore.Release(); } catch (SocketException e) { GD.PrintErr($"[服务器]报错位置:DisconnectClient {e.Message}"); } } #endregion }
2025年09月16日
5 阅读
0 评论
0 点赞