小编mzo*_*zoz的帖子

STOMP目标网址与端点网址

以下代码来自spring mvc文档

@Configuration
@EnableWebSocketMessageBroker
public class WebSocketConfig implements WebSocketMessageBrokerConfigurer {

    @Override
    public void registerStompEndpoints(StompEndpointRegistry registry) {
        registry.addEndpoint("/portfolio");
    }

    @Override
    public void configureMessageBroker(MessageBrokerRegistry registry) {
        registry.setApplicationDestinationPrefixes("/app");
        registry.enableSimpleBroker("/topic");
    }
}

@Controller
public class GreetingController {

    @MessageMapping("/greeting") {
    public String handle(String greeting) {
        return "[" + getTimestamp() + ": " + greeting;
    }
}
Run Code Online (Sandbox Code Playgroud)

客户端连接http://localhost:8080/portfolio建立WebSocket连接,我想知道客户端发送请求的确切网址是什么?

http://localhost:8080/portfolio/app

要么

http://localhost:8080/app

在实际的WebSocket框架中,destination标头是否包含相对网址(例如/app/topic或绝对网址?

java stomp websocket

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

关于C中的int,char和EOF的困惑

我正在学习K&R的经典C编程书第二版,这是第17页的示例:

#include <stdio.h>
/* copy input to output*/
main()
{
    int c; 
    // char c works as well!!
    while ((c = getchar()) != EOF)
        putchar(c);
}
Run Code Online (Sandbox Code Playgroud)

它在int c用于保存的书中已有说明,该书EOF原来-1在我的Windows计算机中带有GCC,不能用表示char。但是,当我尝试时char c它没有问题。奇怪的是我尝试了更多:

int  a = EOF;
char b = EOF;
char e = -1;
printf("%d %d %d %c %c %c \n", a, b, e, a, b, e);
Run Code Online (Sandbox Code Playgroud)

并且输出-1 -1 -1不显示任何字符(实际上根据ASCII表,%c, c此处应该nbs(no-break space)显示但不可见)。

那么如何char分配EOF却没有任何编译器错误呢? …

c int char eof

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

提前退出 C 语言的整个程序?

一般来说,我有一些函数step1 step2......并且它们被依次调用:

int main()
{
  ...
  step1();  // something wrong detected and need to break out of the whole program
  step2();
  step3();
  ...
}
Run Code Online (Sandbox Code Playgroud)

我怎样才能摆脱step1并跳过所有其余代码来终止main()函数?

目前我只能想到设置一个全局变量,比如bool isErr一个标志,这样

step1();  // error detected and isErr is set to 1 inside step1()
if (isErr)
  return;
step2();
...
Run Code Online (Sandbox Code Playgroud)

是否有更好或更“规范”的方法?

顺便说一句,我听说这goto很糟糕,所以我放弃了它:)

c terminate

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

为什么javascript的handleEvent方法可以访问省略事件参数的事件?

根据MDN doc handleEvent方法,event它具有单个参数,但是这个例子是:

代码笔

html代码:

<button id="btn">Click here!</button>  
Run Code Online (Sandbox Code Playgroud)

JavaScript 代码:

const buttonElement = document.getElementById('btn');

buttonElement.addEventListener('click', function () {
  alert(event.type);
});
Run Code Online (Sandbox Code Playgroud)

回调handleEvent函数没有参数,但可以访问事件(它提醒“点击”)。

它是如何工作的?

是否有任何参考文献明确指出event可以省略参数?

javascript dom-events

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

传递 k&amp;r 语法的 c 声明无效

在k&r第2版p123上,它展示了声明符的语法 在此输入图像描述

我在 c 标准 n1256 上发现了类似的语法 在此输入图像描述

根据这int foo()()()也是一个有效的声明符(显然不是),我在这里错过了什么?

ps:有一个cdecl 站点将 c 声明解密为普通单词,并将上面的 decl 翻译为“将 foo 声明为函数返回函数返回函数返回 int”

c declaration

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

Java 线程和异常?

我正在学习 Java线程教程,无法理解最后一个问题“线程和异常”的解释:

\n\n
\n

现在假设我们运行这个测试:

\n\n
@Test public void testThreadOops() {\n  new Thread(() -> { throw new Error("thread oops"); }).start();\n}\n
Run Code Online (Sandbox Code Playgroud)\n\n

是否打印堆栈跟踪Error: thread oops?( ) 是 ( ) 否

\n\n

测试: ( ) 通过 ( ) 失败

\n
\n\n

这个问题的解释是:

\n\n
\n

错误发生在新创建的线程上,并通过控制台上的堆栈跟踪终止该线程。但测试方法testThreadOops正常返回 \xe2\x80\x93 主线程 \xe2\x80\x93 上没有异常并且 JUnit 测试通过。它不会检测到 oops。

\n
\n\n

为什么主线程没有异常呢?

\n

java multithreading

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

(*(int *)&amp;(w)) 在 c 编程中是什么意思?

我正在学习流程和以下代码片段:

/* 
 * fork10 - Synchronizing with multiple children (wait)
 * Reaps children in arbitrary order
 * WIFEXITED and WEXITSTATUS to get info about terminated children
 */
void fork10()
{
    pid_t pid[N];
    int i, child_status;

    for (i = 0; i < N; i++)
    if ((pid[i] = fork()) == 0) {
        exit(100+i); /* Child */
    }
    for (i = 0; i < N; i++) { /* Parent */
        pid_t wpid = wait(&child_status);
        if (WIFEXITED(child_status))
            printf("Child %d terminated with exit status %d\n", …
Run Code Online (Sandbox Code Playgroud)

c operating-system process

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