小编Ans*_*sss的帖子

在C#中发送UDP数据包

我有一个游戏服务器(WoW).我希望我的玩家能够将自定义补丁下载到游戏中.我做了一个程序来检查更新/下载的东西.如果玩家拥有我的所有补丁,我希望我的程序将数据包发送到我的游戏服务器.我不需要服务器的任何响应,它会处理它,但它的另一个故事.

所以我想知道如何将数据包发送到服务器.

谢谢!

c# networking udp send packet

24
推荐指数
2
解决办法
6万
查看次数

协议定义语言

你推荐什么协议定义?我评估了Google的协议缓冲区,但它不允许我控制正在构建的数据包中的字段位置.我认为Thrift也是如此.我的要求是:

  1. 指定数据包中字段的位置
  2. 允许位字段
  3. conditionals:一个标志(位字段)= true表示数据可以出现在数据包的后续位置
  4. 通过引用另一个数据包定义来定义数据包结构的能力

谢谢.

(SourceForge上的" Flavor ",用于定义MPEG-4可能是一个候选者,但我正在寻找一些似乎有更多社区的东西,最好在.NET环境中工作.)

protocols

7
推荐指数
2
解决办法
3303
查看次数

聚簇索引 - 多部分与单部分索引以及插入/删除的影响

这个问题是关于在插入完成时重组聚簇索引中的数据会发生什么.我假设在具有聚簇索引的表上执行插入应该更昂贵,因为重组聚簇索引中的数据涉及更改磁盘上数据的物理布局.除了我在工作中遇到的一个例子,我不确定如何表达我的问题.

假设有一个表(垃圾),并且在表上有两个查询,第一个查询按名称搜索,第二个查询按名称搜索.当我在数据库上工作时,我发现该表已经创建了两个索引,一个用于支持每个查询,如下所示:

--drop table Junk1
CREATE TABLE Junk1
(
    Name char(5),  
    Something char(5),
    WhoCares int
)

CREATE CLUSTERED INDEX IX_Name ON Junk1
(
    Name
)

CREATE NONCLUSTERED INDEX IX_Name_Something ON Junk1
(
    Name, Something
)
Run Code Online (Sandbox Code Playgroud)

现在,当我查看这两个索引时,似乎IX_Name是多余的,因为任何希望按名称搜索的查询都可以使用IX_Name_Something.所以我将消除IX_Name并使IX_Name_Something成为聚集索引:

--drop table Junk2
CREATE TABLE Junk2
(
    Name char(5),  
    Something char(5),
    WhoCares int
)

CREATE CLUSTERED INDEX IX_Name_Something ON Junk2
(
    Name, Something
)
Run Code Online (Sandbox Code Playgroud)

有人建议应该保留第一个索引方案,因为它会导致更有效的插入/删除(假设不需要担心Name和Something的更新).那会有意义吗?我认为第二种索引方法会更好,因为它意味着需要维护一个更少的索引.

我将非常感谢您对此特定示例的任何见解或指导我了解有关维护聚簇索引的更多信息.

sql sql-server indexing clustered-index

7
推荐指数
1
解决办法
954
查看次数

T-SQL Case语句使用newid()作为随机源的奇怪行为

我正在使用SQL Server 2012.

如果我执行以下操作以获取[1,3]范围内的随机数列表,它可以正常工作:

SELECT TOP 100 
    ABS(CHECKSUM(NEWID()))%3 + 1 [value_of_rand]
FROM sys.objects
Run Code Online (Sandbox Code Playgroud)

我得到了这样的好东西(1到3之间).

3
2
2
2
1
....etc.
Run Code Online (Sandbox Code Playgroud)

但是,如果我然后将相同的chained-random-value函数的输出放入CASE语句中,那么它显然不会仅生成值1,2,3.

SELECT TOP 100 
    CASE (ABS(CHECKSUM(NEWID()))%3 + 1)
        WHEN 1
            THEN 'one'
        WHEN 2
            THEN 'two'
        WHEN 3
            THEN 'three'
        ELSE
            'that is strange'
    END [value_of_case]
FROM sys.objects
Run Code Online (Sandbox Code Playgroud)

它输出:

three
that is strange
that is strange
one
two
...etc
Run Code Online (Sandbox Code Playgroud)

我在这做错了什么?

t-sql sql-server

7
推荐指数
1
解决办法
265
查看次数

Roslyn 编译 - 如何引用 .NET Standard 2.0 类库

我创建了一个控制台应用程序项目(针对 .NET Core 3.0)和一个类库(针对 .NET Standard 2.0)。控制台应用程序尝试使用 Roslyn 编译器来编译一些引用先前创建的类库的 C# 代码。不过,我遇到了一些重大问题。

以下是控制台应用程序的代码(请注意,其中大部分是来自https://github.com/joelmartinez/dotnet-core-roslyn-sample/blob/master/Program.cs的示例代码):

using Microsoft.CodeAnalysis;
using Microsoft.CodeAnalysis.CSharp; //nuget Microsoft.CodeAnalysis.CSharp
using Microsoft.CodeAnalysis.Emit;
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using System.Reflection;
using System.Runtime.Loader;

//This is a class library I made in a separate project in the solution and added as a reference to the console application project.
//The important bit for the reproduction of the issue is that ClassLibrary1 targets .NET Standard 2.0.
using ClassLibary1;

namespace RoslynIssueRepro
{
    class …
Run Code Online (Sandbox Code Playgroud)

c# roslyn

7
推荐指数
2
解决办法
5149
查看次数

ANTLR - 无法获得AST层次结构设置

我试图让我的头围绕ANTLR中的树构造运算符(^和!).

我有一个flex字节数组的语法(一个UINT16,用于描述数组中的字节数,后跟那么多字节).我已经注释掉所有语义谓词及其相关代码,这些代码确实证明了数组中的字节数与前两个字节所指示的一样多......那部分不是我遇到的问题.

我的问题是解析一些输入后生成的树.所有发生的事情是每个角色都是兄弟节点.我期望生成的AST与您在ANTLRWorks 1.4的Interpreter窗口中可以看到的树类似.一旦我尝试使用^字符更改树的制作方式,我就会得到一个例外:

Unhandled Exception: System.SystemException: more than one node as root (TODO: make exception hierarchy)
Run Code Online (Sandbox Code Playgroud)

这是语法(目前针对C#):

grammar FlexByteArray_HexGrammar;

options 
{
//language = 'Java';
language = 'CSharp2';
output=AST; 
}

expr 
    :   array_length remaining_data
        //the amount of remaining data must be equal to the array_length (times 2 since 2 hex characters per byte)
        // need to check if the array length is zero first to avoid checking $remaining_data.text (null reference) in that situation.
        //{ ($array_length.value == 0 && $remaining_data.text == …
Run Code Online (Sandbox Code Playgroud)

antlr abstract-syntax-tree antlrworks

6
推荐指数
1
解决办法
2352
查看次数

PostgreSQL - “包含错误详细信息”连接字符串参数 - 返回的信息有多敏感?

https://www.npgsql.org/doc/connection-string-parameters.html

包含错误详细信息 - 启用后,PostgreSQL 错误和通知详细信息将包含在 PostgresException.Detail 和 PostgresNotice.Detail 中。这些可能包含敏感数据。

如果我在 PostgreSQL 的连接字符串中提供“Include Error Detail=True”,我需要关注哪些敏感数据?如果查询本身以异常或错误消息返回,这对我来说没问题,但如果说连接密码以明文形式返回,显然那就不好了。根据此参数有条件地将哪些敏感数据包含在错误中?

postgresql connection-string

5
推荐指数
1
解决办法
1万
查看次数