小编Bas*_*ser的帖子

修改我正在迭代的字典

foreach(BruteforceEntry be in Entries.Values)
{
    if (be.AddedTimeRemove <= now)
        Entries.Remove(be.IPAddress);
    else if (be.Unbantime <= now && be.Unbantime.Day == DateTime.Now.Day)
        Entries.Remove(be.IPAddress);
}
Run Code Online (Sandbox Code Playgroud)

抛出异常:

收集被修改; 枚举操作可能无法执行.

出于某种原因,它已经不复存在了.

我知道你不能删除某些东西,而是以这种方式迭代它.我的问题是:我该如何解决?

c#

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

我应该在MMORPG模拟器中使用指针吗?

我有一个MMORPG模拟器,这意味着它将处理相当多的数据包.目前,我正在使用指针,因为我认为正确使用它们可以加快我的服务器,但是我有两个朋友,一个告诉我使用指针,他认为我可以使用它们而不会遇到麻烦,我的其他朋友说我不应该使用指针,因为它们可能会使我的服务器崩溃,它们不安全,并且它们不易管理.

我使用结构作为我的数据包结构,所以例如我可以使用以下行获取它的类型:Ptr-> Type;

你怎么看?

c# pointers unsafe

4
推荐指数
2
解决办法
432
查看次数

C#中的字节数组加密

我想使用按位运算符创建一个很好的加密.但是我没有这样做.

我希望它有按位运算符使用字节数组来加密和解密我的字节数组.

public class Cryptographer
{
    private byte[] Keys { get; set; }

    public Cryptographer(string password)
    {
        Keys = Encoding.ASCII.GetBytes(password);
    }

    public void Encrypt(byte[] data)
    {
        for(int i = 0; i < data.Length; i++)
        {
            data[i] = (byte) (data[i] & Keys[i]);
        }
    }

    public void Decrypt(byte[] data)
    {
        for (int i = 0; i < data.Length; i++)
        {
            data[i] = (byte)(Keys[i] & data[i]);
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

我知道这是错的,这就是我需要帮助的原因.我只是希望它使用1个字符串来加密和解密所有数据.

c# cryptography

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

byte []到byte*属性

我正在尝试创建一个属性,它将从我的字节数组(byte [])生成一个指针(byte*),这确实有效,但每当我修改这个返回的指针时,我的字节数组都不会被修改,这是一块我想要使​​用的代码.

public unsafe class PacketWriter
{
    private readonly byte[] _packet; 
    private int _position;

    public byte* Pointer
    {
        get
        {
            fixed (byte* pointer = _packet)
                return pointer;
        }
    }

    public PacketWriter(int packetLength)
    {
      _packet = new byte[packetLength];   
    }

    //An example function
    public void WriteInt16(short value)
    {
        if (value > Int16.MaxValue)
            throw new Exception("PacketWriter: You cannot write " + value + " to a Int16.");
        *((short*)(Pointer + _position)) = (short) value;
        _position += 2;
    }

    //I would call this function to …
Run Code Online (Sandbox Code Playgroud)

c#

2
推荐指数
1
解决办法
2098
查看次数

标签 统计

c# ×4

cryptography ×1

pointers ×1

unsafe ×1