小编Art*_*sky的帖子

PipeTransmissionMode.Message:.NET命名管道如何区分消息?

有人可以澄清PipeTransmissionMode.Message.NET中的含义吗?

.NET如何区分通过管道传递的一条消息?

  • 我可以使用a序列化对象BinaryFormatter,然后将其作为消息传递给管道吗?
  • 或者只是在管道处于PipeTransmissionMode.Message模式时允许的字符串消息?

.net named-pipes

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

在GCC中使用"naked"属性来执行函数

GCC文档声明在6.30声明函数属性:

naked

在ARM,AVR,IP2K,RX和SPU端口上使用此属性可指示指定的函数不需要编译器生成的序言/结尾序列.程序员需要提供这些序列.可以安全地包含在裸函数中的唯一语句是asm没有操作数的语句.if应避免使用所有其他语句,包括声明局部变量,语句等.应该使用裸函数来实现汇编函数的主体,同时允许编译器为汇编器构造必需的函数声明.

我可以使用裸函数中的C语法安全地调用函数,还是仅使用asm?

attributes gcc

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

accept()方法和tcp/ip握手

我使用java ServerSocket类进行服务器应用.accept()方法是否参与tcp/ip握手?

正如我在tcp/ip dump和命令netstat中看到的那样,客户端在调用accept方法之前建立连接并返回Socket对象.

是java问题,还是我不理解accept()语义?

java sockets tcp handshaking

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

具有旧样式函数的C编译器的行为,没有原型

当我的程序包含两个文件时:

main.c中

#include <stdio.h>

int main(void) { 
     printf("%lf\n",f());   
     return 0;
 }
Run Code Online (Sandbox Code Playgroud)

func.c

double f(int a) {
 return 1;
}
Run Code Online (Sandbox Code Playgroud)

编译器不显示任何错误.

当我的程序只包含一个文件时:

main.c中

#include <stdio.h>

int main(void) { 
     printf("%lf\n",f());   
     return 0;
 }

double f(int a) {
 return 1;
}
Run Code Online (Sandbox Code Playgroud)

Visual C++ 2008编译器显示以下错误:

Error 2 error C2371: 'f' : redefinition; different basic types d:\temp\projects\function1\function1\1.c 8 function1
Run Code Online (Sandbox Code Playgroud)

任何人都能解释这种奇怪的行为吗?

c declaration function implicit function-prototypes

5
推荐指数
2
解决办法
1108
查看次数

如何使用CDT进行指令级调试

我正在使用CDT开发C程序.

当调试器在断点处停止并且我执行"Step Over"或"Step Into"时,调试器行为基于源行级别而不是指令级别.

我可以在CDT的指令级别进行调试吗?

c debugging eclipse-cdt

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

udp打孔器和端口限制锥NAT

我想了解当端口限制锥NAT后面的两台主机分别建立连接时,udp打孔的工作原理。

据我了解,它分为几个阶段,涉及三个主机。

主机A和主机B在端口受限锥形NAT的后面。

主机C是可以从主机A和B接收数据包的服务器。

  1. A向C发送数据包。
  2. C从A接收数据包并确定A的外部地址:端口对
  3. B向C发送数据包。
  4. C从B接收数据包并确定B的外部地址:端口对
  5. C将外部地址:B的端口发送到A
  6. C将外部地址:A的端口发送到B
  7. A将数据包_1发送到B的外部地址
  8. B将数据包_2发送到A的外部地址

问题是:

受限锥NAT后面的A如何从也位于受限锥NAT后面的B接收数据包?

端口受限锥形NAT不允许接收源地址:端口对与它发送的目标地址:端口对不匹配的数据包。为什么在A和B之间发送的其他数据包到达A和B?

是否因为端口受限锥NAT将packet_2视为来自B的响应?

因此,数据包_1将丢失,但数据包_2到达B。我是对的吗?

先感谢您。

udp nat hole-punching

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

Java 处理日期和时间的不一致

我注意到 java 中日期和时间的奇怪行为。我有以下代码:

public class TestDateTime {
    public static void main(String[] args) {
        TimeZone.setDefault(TimeZone.getTimeZone("Europe/Helsinki"));

        Calendar calendar = GregorianCalendar.getInstance();

        assert(calendar.getTimeZone().equals(TimeZone.getDefault()));
        //Set 1899-12-30T23:00:00
        calendar.set(1899,11,30,23,0,0);
        calendar.set(Calendar.MILLISECOND,0);

        long timeInMillis = calendar.getTimeInMillis();
        java.util.Date calendarDateTime = new java.util.Date(timeInMillis);

        LocalDateTime localDateTime = LocalDateTime.ofInstant(ofEpochMilli(timeInMillis), ZoneId.systemDefault());
        System.out.println("Time in millis: " + timeInMillis);
        System.out.println("Date: " + calendarDateTime.toString());
        System.out.println("Local DateTime: " + localDateTime.toString());
    }
}
Run Code Online (Sandbox Code Playgroud)

输出是:

Time in millis: -2209086000000
Date: Sat Dec 30 23:00:00 EET 1899
Local DateTime: 1899-12-30T22:39:49
Run Code Online (Sandbox Code Playgroud)

timeInMillis 必须包含从 传递的毫秒数1970-01-01T00:00:00Z。Date 类的实例存储从 传递的毫秒数1970-01-01T00:00:00ZDate.toString()方法返回默认时区的本地日期和时间。 …

java time datetime calendar date

5
推荐指数
2
解决办法
2136
查看次数

主线DHT引导程序

有人能否澄清主线DHT规范中的陈述?

在将第一节点插入其路由表中并且此后启动时,该节点应该尝试在DHT中找到与其自身最近的节点.它通过向更近和更近的节点发出find_node消息来做到这一点,直到找不到更近的节点.

什么"直到它找不到更近"是什么意思?

当我的程序开始发送find_node消息时,它有空的节点集.对find_node消息的每个响应都返回大约8个dht节点.我的程序在列表中收集它们.

我的程序何时必须停止发送查找节点消息?

我认为它必须停止发送它何时会收到dht节点的集合,其中所有元素都在已经收集的节点列表中?

我对吗?

先感谢您.

implementation bootstrapping bittorrent dht

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

是否允许在Mainline DHT中的同一ip:端口对后面运行几个不同的DHT节点?

是否允许在Mainline DHT中的同一ip:端口对后面运行几个不同的DHT节点?哪个节点应该回复DHT查询消息?全部或其中一个?

先感谢您.

bittorrent dht

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