问题标签 [datagram]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 我如何使用线程在 java 中模拟非阻塞 i/o
我正在编写涉及服务器和许多客户端的简单应用程序。我必须使用 DataGramSocket。应用程序是通过控制台简单地交换消息,就像聊天一样。但是 in.readLine() 和 ds.receive() 中的两个操作都是阻塞的,将它们放在单独的线程中并没有帮助,因为阻塞 i/o 也会阻塞线程。任何人都可以告诉我没有nio我怎么能做到这一点
wcf - 何时使用 WCF 双工与数据报?
我的应用程序是主/从系统,其中从站可以根据(本地)事件向主站发送消息,主站也可以根据本地事件向从站发送消息。
在这两种情况下,它们都可以根据传入消息发送传出消息。有时,这些响应可能仅在人机交互之后才发送 - 而不是立即发送(同时连接可能会丢失)。
master 和 slave 都将使用 TCP 通过 Internet 进行通信。
这是双工的好场景吗?或者我应该简单地发送“即发即弃”(数据报)消息并在我的业务逻辑(视图模型)层中处理消息进程/状态/工作流?
谢谢!
PS。此外,讨论何时/为什么每个都是合适的会有所帮助。
java - Static memory for incoming UDP packets
Objective:
To pass data from incoming UDP datagrams to 4 threads waiting on their respective queues. The application is supposed to work non-stop for pumping traffic to a DUT and process the incoming messages. This is what I am doing:
Problem:
The memory is continuously increasing. I suspect this is because it is waiting for GC to claim the unused memory. I wish I can allocate some static memory outside the infinite while loop. The problem I face if I do this is that the “receivePacket.getData()” returns a byte array and to work on the data, I need to convert it into a string. All the data is in text format (to be specific it is MGCP packets). Please suggest any way to make sure that the memory is not exhausted. I don’t want to manually call the garbage collector. I am not sure of the overhead for GC.
Thanks
android - Android 中的 MediaRecorder 和 UDP (DatagramSocket)
我目前正在编写一个程序,它是一种 VoIP 客户端。我正在尝试在 2 个客户端之间建立连接并发送和接收从麦克风记录的数据。
我目前正在使用文件,但它看起来像一个糟糕的实现:
录音机开始录制到一个临时文件。计时器启动,停止记录器,查看文件大小,然后使用 DatagramPacket 发送内容。
这似乎非常糟糕。我想知道 MediaRecorder 和 MediaPlayer 类是否有办法将 UPD 套接字分别作为文件输出和输入(即 DatagramSocket)。
我可以使用来自套接字的文件描述符,但套接字使用 TCP。我想使用 UDP,所以我猜是 DatagramSocket,但我似乎找不到在我的 MediaRecorder 和 MediaPlayer 类中使用它的方法。
有人请对此有一个好的解决方案吗?
非常感谢
java - Java 数据报套接字不接收数据包
我正在尝试使用 Java 数据报在服务器和客户端之间创建数据包流。问题是,虽然我收到了正在发送数据包的确认信息,但它们在到达我设置的客户端侦听器之前都丢失了。我现在拥有它,因此 5 秒后会出现超时,每次运行时都会发生这种情况。
你可以选择略读第二课。它们大体相同,只是将 server.send 替换为 client.receive。此外,这个类并不是为了真正做任何重要的事情而设计的。所以,很多代码(比如异常处理)都写得很简单。
我能做些什么来防止数据包丢失吗?我在我的计算机上转发了端口(没关系,我使用的是我的本地主机,如果你想知道它是 App.Local)。
另外,边问。我最初将它设置为一个单独的类,编码为发送一个数据包,然后转身接收一个数据包。但它抛出了一个异常,因为“ICMP 端口无法访问”。有谁知道为什么会这样?
java - 通过 Java 中的数据报发送桌面流
我想捕获流桌面并通过 Java 中的数据报将其发送(到客户端)。以下示例制作屏幕截图。
我是否也必须使用 Robot 类?,我如何发送流?
感谢帮助。
问候!
python - Python 记录数据报处理程序
我在获取 python 文档中显示的用于日志记录 DatagramHandler 的示例代码时遇到问题,下面显示的代码在收到的每个数据报上都给出了 EOFError 异常。
但是这段代码有效,任何想法
问候
java - 当目的地离线时,数据报包去了哪里?
那些数据包会消失吗?还是他们等待目的地?或者数据包返回然后抛出异常?
在java中,DatagramPacket构造函数中的byte []缓冲区与长度有什么区别?
sockets - 网络编程中的流和数据报有什么区别?
套接字(流)与套接字(数据报)有什么区别?为什么要使用一个而不是另一个?
sockets - Linux 中 AF_UNIX 数据报消息的最大大小是多少?
目前我达到了 130688 字节的硬限制。如果我尝试在一条消息中发送更大的内容,我会收到ENOBUFS
错误消息。
我检查了net.core.rmem_default
, net.core.wmem_default
, net.core.rmem_max
,net.core.wmem_max
和net.unix.max_dgram_qlen
sysctl 选项并增加了它们,但它们没有效果,因为它们处理的是总缓冲区大小而不是消息大小。
我还设置了SO_SNDBUF
和SO_RCVBUF
套接字选项,但这与上面的问题相同。无论如何,默认套接字缓冲区大小都是基于默认套接字选项设置的。
我查看了在ENOBUFS
套接字堆栈中返回的内核源代码,但我不清楚它来自哪里。似乎返回此错误的唯一地方与无法分配内存有关。
最大尺寸实际上是 130688 吗?如果不能,是否可以在不重新编译内核的情况下进行更改?