小编Nic*_*nks的帖子

在同一个应用程序中使用TCP和UDP的任何问题?

我的问题是询问是否接受使用TCP和UDP在客户端和服务器之间进行通信.

我正在制作一个实时客户端服务器游戏,其中包含需要保证的部分通信(登录等),但其他部分可以丢失数据包(状态更新等).所以,我想在大多数数据通信中使用UDP,但我不想实现自己的框架,以确保我的控制通信(登录)得到保证.

那么,最初使用TCP来管理连接,然后在一个单独的端口上发送数据通信包是否合理?

java android udp tcp

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

应用程序验证程序自动进程转储文件创建

我知道如何手动使用 AppVerif 和 windbg 来调试进程问题,但我正在组装一个自动化系统来运行一系列压力测试,而无需用户在场。

我需要一种方法来在 AppVerif 发现问题时生成进程转储,然后继续(假设这是一个非致命错误)。

有没有一种方法可以将 AppVerif 配置为正确地生成进程的转储而不是闯入,或者我是否必须附加 windbg 并以某种方式使其自动化以在中断时创建转储,然后继续。

windows windows-services windbg application-verifier

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

如何在Linux中表示成功状态代码

Windows有不同类型的状态码,HRESULT以及NTSTATUS例如,允许用于表示成功和失败的值。这样就可以使用FAILED和这样的宏NT_SUCCESS。成功状态代码的一个示例是STATUS_PENDING指示IO尚未完成。

我正在尝试在Linux中映射相似的样式状态代码。我有一个(WIP)跨平台库,该库在Windows上使用上述类型的状态代码(用户模式和内核模式)。我有包装上述宏的“ FAILED”宏。对于这一切,我都需要一个等效的Linux。

我环顾四周,没有发现任何有趣/有帮助的地方。对于可能返回并出错的任何系统/平台功能(套接字,线程,锁),我需要确保将其转换为适当的状态码类型。Windows在这类事情上有很多帮助者,但是我不确定Linux。

伪代码示例:

MY_STATUS SendAsync(...) {
   ASYNC_OPERATION* Operation = MY_ALLOC(...)
   if (Operation == NULL) {
       return MY_OUT_OF_MEMORY_ERROR; // Error status
   }
   // Build the operation
   MY_STATUS Status = QueueOperation(Operation);
   if (MY_FAILED(Status)) {
       return Status;
   }
   return MY_STATUS_PENDING; // Success status
}
Run Code Online (Sandbox Code Playgroud)

然后,调用方应该可以具有以下代码:

MY_STATUS Status = SendAsync(...)
if (MY_FAILED(Status)) {
   // Bail
}
// Handle success
Run Code Online (Sandbox Code Playgroud)

我认为问题的症结在于,我不知道如何将系统/平台函数调用中的状态代码填充到支持成功/失败的通用类型中。通常,看起来所有状态代码都是肯定的,所以我只能说我的成功错误代码是<= 0。但是我不确定这是否是一个很好的解决方案。

需要明确的是,由于有人提出这个问题可能是答案,所以我并没有试图将Linux状态/错误代码强制HRESULT明确地格式化。我只是试图找到一种将错误代码表示为成功或失败的方法。如果我必须一路转换系统错误代码(否定它们?),那是可以接受的。如果没有真正解决此问题的方法,那将是一个可以接受的答案(尽管不希望如此),我将不得不寻找一些解决方法。

c linux cross-platform

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

获取给定提交范围的 GitHub 已关闭问题列表

给定一个提交范围,说:

https://github.com/microsoft/msquic/compare/3fb2c1145be48cf5acbca72a4e42d8702e3afbd6...2be77cd39ce39528b00ea698645e369b12187502

是否可以获得这些提交关闭的问题列表?

我能判断的唯一方法是手动转到每个提交,找到相应的 PR,然后查看是否存在与之相关的任何问题。有什么办法可以自动化吗?

github github-issues

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

如何在OpenCV中训练/使用HOGDescriptor类

我一直在研究/使用OpenCV来尝试检测人体.我想尝试为我的特定目的训练HOG,而不是使用提供的getDefaultPeopleDetector函数.我一直无法在HOGDescriptor类上找到任何可用的文档.

我如何为自己的目的训练自己的分类器?

c++ opencv machine-learning pattern-matching

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

在悬停或单击时更改按钮图像

如何在悬停和单击时更改按钮的背景图像?Visual Studio的UI似乎没有提供任何简单的方法.目前,默认行为似乎用纯色替换我的图像,这看起来很糟糕.

我到目前为止所有的都是按钮基础:

    <Button Content="" Height="75" VerticalAlignment="Center" Width="75" HorizontalAlignment="Center" ClickMode="Press">
        <Button.Background>
            <ImageBrush ImageSource="../data/images/icons/skill_icon_0.png"/>
        </Button.Background>
    </Button>
Run Code Online (Sandbox Code Playgroud)

我试图处理事件并手动设置它,但它不适用于Pressed/Released:

        Button skillButton = new Button();
        skillButton.Width = 75;
        skillButton.Height = 75;
        skillButton.ClickMode = ClickMode.Press;
        skillButton.Background = GetIconImage(iconIndex, 0);
        skillButton.PointerEntered += 
            (object sender, Windows.UI.Xaml.Input.PointerEventArgs e) => {
                skillButton.Background = GetIconImage(iconIndex, 1);
            };
        skillButton.PointerExited +=
            (object sender, Windows.UI.Xaml.Input.PointerEventArgs e) => {
                skillButton.Background = GetIconImage(iconIndex, 0);
            };
        skillButton.PointerPressed +=
            (object sender, Windows.UI.Xaml.Input.PointerEventArgs e) => {
                skillButton.Background = GetIconImage(iconIndex, 2);
            };
        skillButton.PointerReleased +=
            (object sender, Windows.UI.Xaml.Input.PointerEventArgs e) => …
Run Code Online (Sandbox Code Playgroud)

xaml image button windows-8 windows-runtime

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

在c ++中用于循环的循环

我试图找出基本上为for循环线程的最佳方法.例如,如果我有以下循环:

for(int i = 0; i < n; i++)
  doSomethingThreadSafe(i);
Run Code Online (Sandbox Code Playgroud)

这将在Windows平台上.我已经为每个处理器创建了一个线程,然后尝试尽可能均匀地为每个处理器划分n.然后我将必要的数据传递给每个线程,然后使用WaitForMultipleThreads.有一个更好的方法吗?我不想使用像boost这样的任何其他库.

理想情况下,我想要一些通用的(也许是模板化的)方法.即

threaded_for(0, n, doSomethingThreadSafe);
Run Code Online (Sandbox Code Playgroud)

如果最好/最有效的方法是使用库,那么添加库需要多少工作,以及在这个例子中它将如何使用.不过,我更喜欢一种不需要添加其他东西的解决方案.

c++ windows multithreading for-loop

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

为什么union和inner struct添加填充?

在amd64上,以下结构的大小为16个字节:

typedef struct _my_struct {
    void *a;
    UINT32 b;
    UINT16 c;
    UINT8 d;
    UINT8 e;
} my_struct;
Run Code Online (Sandbox Code Playgroud)

但是当我把前三个变量放在一个联合中时,大小变为24.为什么?

typedef struct _my_struct {
    union {
        struct {
            void *a;
            UINT32 b;
            UINT16 c;
        } my_inner;
        struct {
            void **f;
        } my_inner2;
    }
    UINT8 d;
    UINT8 e;
} my_struct;
Run Code Online (Sandbox Code Playgroud)

c padding unions

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

Java的TCP Socket类在发送数据时是否阻塞

当我使用Javaa的Socket类发送一个字节数组时,在以下代码块中进行写调用,直到它验证了收件人已收到数据为止?

byte data[] = ...;
Socket socket = ...;

socket.getOutputStream().write(data); // blocking ?
Run Code Online (Sandbox Code Playgroud)

我问的原因是,如果我有一个我想要发送相同数据的套接字列表,我想尽可能有效地发送它,即有没有比这更好的方法:

ArrayList<Socket> sockets = ...;
byte data[] = ...;

for(int i = 0; i < sockets.size(); i++)
  sockets.getOutputStream().write(data);
Run Code Online (Sandbox Code Playgroud)

java sockets tcp blocking

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

什么是在阵列中声明52个图像图标的最简单方法

我有一个imageicon数组,更简单的方式来声明它们,而不仅仅是声明每个单独的图像.ImageArray [0] = new ImageIcon("resources/images/cards/6.png");

java arrays

0
推荐指数
1
解决办法
4110
查看次数