草庐IT

udp_write

全部标签

java - Socket OutputStream::write 方法混合了 TCP 数据包?

我有一些关于javasocket的问题。我创建了一个简单的代理服务器来监听http请求,将此请求传输到源,然后返回响应,无需断开连接。有时客户端会收到无效数据。我查看了tcp转储日志,发现tcp数据包是混合的这是非常简单的代码示例Socketsocket=newSocket("127.0.0.1",3000);OutputStreamout=socket.getOutputStream();InputStreamin=socket.getInputStream();while(true){finalRequestrequest=Request.read(in);if(request==

c - Linux, C : IPv6 socket: write blocks

我有服务器和客户端应用程序,在Ubuntu1410默认内核上以IPv6运行。服务:socket监听本地TCP端口并使用select()处理新的连接和数据;客户端:socket通过TCP连接服务器IPv6地址和端口。可以成功建立连接。但是,当write()数据时,缓冲区大小为128K,它会阻塞在write()中。因为我需要写入很多数据,所以我有一个for循环来调用write()。有时,write()会成功一两次,但随后又会阻塞。我的应用支持IPv4和Ipv6。write()适用于IPv4。而且,如果我在::1上测试(服务器和客户端在同一台机器上运行),IPv6也可以工作。r=write(

multithreading - 使用 C++ 在服务器上同时收听 UDP 和 TCP

我正在尝试编写一个套接字和客户端程序,这样服务器应该同时监听两个连接。例如,当我启动服务器时,它会监听UDP端口和TCP端口,每当UDP客户端发送消息时,它必须处理它,而当TCP客户端发送消息时,它必须处理它。我尝试使用pthreads但无法实现我想要的。这里是C++代码的细节以下函数将由各自的pthreads调用void*TCP(void*ptr){chartcp[MAXDATASIZE];cout>tcp;ServertcpServer(tcp,1);tcpServer.testbind(1);pthread_exit(NULL);}void*UDP(void*ptr){charu

c# - 从广播收到UDP包后获取客户端IP

目前我正在开发一个设备查找器,我真的很难处理代码,因为通常我会编写微Controller代码。我希望有人能帮助我。目标是从UDP广播接收客户端IP到制造商特定端口。这对我来说很好用。我发送广播并取回从设备发送的数据:00-00-00-F7-00-20-A0-06-58-39-30-12-63-16-00-00-62-A7-52-0B-FF-00-00-00-00-80-A3-BE-2F-XX它包括设备的MAC地址(最后6个十六进制片段)但是我找不到发件人(客户端)的IP地址我怎样才能保存从客户端发送的整个包装?包括IP?因为在Wireshark中我看到了整个包(发送自:192.xxx.

apache - 如何强制 Apache 服务器使用 TCP 或 UDP?

我已经安装了Apache,我想运行一个Apache网络服务器。我知道Apache是一个HTTP服务器,但我想知道在连接到它时如何强制使用TCP或UDP。我应该在服务器端配置端口吗?我应该使用不同的方式在客户端访问服务器吗? 最佳答案 HTTP的RFC规范确实说HTTP可以在TCP以外的其他协议(protocol)上运行,但据我所知,这从来没有做过。如果出于某种原因你打算尝试使用另一种协议(protocol),你需要选择一个像TCP一样具有流量控制的协议(protocol)。UDP不适合。Apache被设计为使用TCP,对此的任何更改

c# - 连续调用 NetworkStream.Write - 它有什么不同吗?

考虑以下两种发送数据的方法和一种读取数据的方法:publicstaticvoidSendConsecutively(thisNetworkStreamstream){byte[]header={1,2,3,4};byte[]message={5,6,7,8,9,10};stream.Write(header,0,header.Length);stream.Write(message,0,message.Length);}publicstaticvoidSendAllInOne(thisNetworkStreamstream){byte[]headerAndMessage={1,2,3,

udp - 哪种流量将主导 Internet 链路、弹性流量或非弹性流量?

假设链路上同时存在弹性流量和非弹性流量(如图所示)。那么它们中的哪一个将主导链路(弹性或非弹性)。根据我的说法,这应该取决于如果非弹性流量作为弹性流量可以调整流量,那么流量可以根据它进行调整。所以任何人都可以解释一下或给出答案。提前致谢 最佳答案 我自己发现,非弹性流量将主导链路,因为非弹性流量本身没有拥塞控制,并且无论拥塞如何,它都会继续发送数据包,而弹性流量将减少其发送窗口,因为拥塞增加,因此非弹性流量往往主导链路。 关于udp-哪种流量将主导Internet链路、弹性流量或非弹性流

c++ - 是否可以将 TCP 数据包发送到 UDP-only 服务器?

我有一个UDP服务器,但我在客户端没有UDP功能。有没有办法通过TCP发送数据包,让UDP服务器正常接收?UDP服务器不能转化为TCP服务器。想要这样做的原因是我使用的是不支持UDP关联功能的SOCKS5代理,但我必须使用该代理。 最佳答案 没有。UDP服务器无法完成TCP所需的3次握手。如果你有IP-raw套接字,实际上更容易在上面实现UDP。然而,您似乎极不可能没有UDP堆栈。当您谈论“无UDP功能”时,您的意思是客户端没有UDP堆栈,还是他只是在某些阻止UDP的防火墙后面?在后一种情况下使用代理。

sys.stdout.write in Python无法正常工作

考虑以下代码段#!/usr/bin/python3importshimportsyssys.stdout.write("hello")sh.whoami(_out=sys.stdout.buffer)我希望以上程序能打印hellousername但是我得到了usernamehello有人可以向我解释为什么会发生这种情况吗?我在LinuxMint18.1上使用Python3.5.2看答案这是您的输出缓冲。如果您这样做:sys.stdout.write("hello")sys.stdout.flush()sh.whoami(_out=sys.stdout.buffer)该订单将如您期望的那样。

java - 使用 LabVIEW 通过 TCP 或 UDP 将数据传输到 cRIO

我应该使用TCP还是UDP作为协议(protocol),通过局域网从我的笔记本电脑(使用LabVIEW程序)向cRIO(使用java)发送可变数据包。更具体地说,LabVIEW部分很简单。但我不熟悉在java中设置套接字和接收数据。 最佳答案 TCP。UDP是一种“原始”数据包协议(protocol),这意味着每个sendto()对应于网络上的单个数据报,没有流量控制或错误恢复。如果您需要发送超过几百个字节,需要确保数据通过,需要数据按顺序到达,或者将以接近网络速率的任何速率发送数据,那么单独的UDP将无法提供你需要什么。有几个可靠