- xml - AJAX/Jquery XML 解析
- 具有多重继承的 XML 模式
- .net - 枚举序列化 Json 与 XML
- XML 简单类型、简单内容、复杂类型、复杂内容
我已经用 golang 编写了以下简单的 udp 服务器/客户端。该应用程序将当前时间发送到指定的 ipv6 链路本地地址。接收方发回一个小回复。仅当回复的发送端口与请求的目标端口相同时才有效。
Wireshark 比较:https://www.dropbox.com/s/ypaepz62sa4xtnh/go_simple_udp3.png?dl=0
为什么会这样?
package main
import (
"net"
"log"
"fmt"
"time"
)
func main() {
//Remote Addr
BoxAddr, err := net.ResolveUDPAddr("udp6", "[fe80:0000:0000:0000:0211:7d00:0030:8e3f]:5684")
if(err != nil) {
log.Fatal(err)
return
}
/*
LocalAddr, err := net.ResolveUDPAddr("udp6", "[fe80::299f:4146:2e32:72fd%4]:50361")
if(err != nil) {
log.Fatal(err)
return
}
*/
c, err := net.DialUDP("udp6", nil, BoxAddr)
if(err != nil) {
log.Fatal(err)
return
}
defer c.Close()
fmt.Print(c.LocalAddr())
//read loop
go func(c *net.UDPConn) {
for {
rxMsg := make([]byte, 100);
n,_, err := c.ReadFromUDP(rxMsg)
if(err != nil) {
log.Fatal(err)
return
} else {
fmt.Print("Got from remote: ",n, " bytes\r\n")
}
}
}(c)
//write every second current time
for {
b := []byte(time.Now().String())
n, err := c.Write(b)
if(err != nil) {
log.Fatal(err)
return
} else {
fmt.Print("Wrote to destination socket: ",n, " bytes\r\n")
}
time.Sleep(1000 * time.Millisecond)
}
}
最佳答案
当您使用 DialUDP
时,您正在创建一个“连接的”UDP 套接字,它只监听来自给定远程地址的数据报。底层系统调用与 connect
相同,在手册页中指出:
If the socket sockfd is of type SOCK_DGRAM then addr is the address to which datagrams are sent by default, and the only address from which datagrams are received.
如果您想监听在特定 UDP 端口上接收到的任何 数据报,请使用 ListenUDP
创建连接.
关于戈朗 : ReadFromUDP behavior when source port differs in reponse from dial,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32483075/
当我创建自定义调用类时,我无法返回响应,因为响应类是最终的。有什么解决办法吗? public class TestCall implements Call { String fileType;
我正在用 Angular 制作一个http拦截器,我想从$httpProvider拦截器的response抛出错误。 根据文档: response: interceptors get called w
我有 2 个 mysql 数据库,我想为第二个数据库 (analysis_db) 创建一个新模型,但是在运行 makemigrations 之后,它显示“未检测到任何更改”。这是我的代码 在 sett
只是为了简要介绍一下背景,我之所以要跟踪这个特定的颠覆古怪之处,是因为我发现它对我们的新 Maven 设置(特别是发布插件)进行了故障排除。 release:prepare给了我埋在堆栈跟踪中的相同错
我已经用 golang 编写了以下简单的 udp 服务器/客户端。该应用程序将当前时间发送到指定的 ipv6 链路本地地址。接收方发回一个小回复。仅当回复的发送端口与请求的目标端口相同时才有效。 Wi
我正在尝试缓存 ActionResult。在特定的 ActionResult 中,我将一些数据写入 cookie。输出缓存在该操作结果中不起作用。它适用于我不使用 Response.Cookies 的
JSON 当成功代码== 200 { "data": { "user": { "id": 8, "name": "soleekuser", "e
我是一名优秀的程序员,十分优秀!