草庐IT

send_buffer

全部标签

java - 使用 Eneter Messaging 和 Protocol Buffers 在 3g 网络上的端口 80 上启动 tcp 服务器的权限被拒绝

我正在开发一个项目,我的android应用程序应该充当其他android客户端的服务器。我正在使用Enetermessagingframework它使用套接字和谷歌Protobuf..在wifi上一切都像一个魅力但是一旦我切换到3g网络(尝试使用手机的3g公共(public)ip地址和端口80/81启动服务器)我收到以下错误:EACCES(权限被拒绝)E/EneterMessaging:~24216eneter.messaging.messagingsystems.tcpmessagingsystem.internal.TcpListenerProvider.startListenin

c - 当通过 Socket 发送数据时,send/write 何时返回 -1?

Linux。TCP套接字。send()/write()命令何时会失败?是否只有内核中的TCP发送缓冲区溢出才返回-1? 最佳答案 来自OpenGroupwrite()的定义:Uponsuccessfulcompletion,write()[XSI]andpwrite()shallreturnthenumberofbytesactuallywrittentothefileassociatedwithfildes.Thisnumbershallneverbegreaterthannbyte.Otherwise,-1shallberetu

c++ - google protocol buffers - 位错误的概率和减少它们的方法

我通过TCP通过Internet通过无线VPN通过VPN传输相当大量的谷歌ProtocolBuffer消息,我觉得我得到了相对较高的错误率(例如,bool字段从false切换为true或类似的东西)。大约在10,000分之一到50,000分之一之间。这可能吗?维基百科指出TCP的校验和很弱,但这通常在底层协议(protocol)中得到修复:TCP校验和是现代标准的弱校验。具有高误码率的数据链路层可能需要额外的链路纠错/检测功能。弱校验和通过在TCP和IP下面的第2层普遍使用CRC或更好的完整性校验来部分补偿,例如在PPP或以太网帧中使用的那样。有没有人知道预期错误率应该是多少?如果上述

ruby 套接字 : Error (EINVAL) while trying to bind a sending socket to a port

当我尝试从blue.example.edu连接到green.example时,connect方法无法给出EINVAL.edu当我从blue连接到blue本身时,我没有收到此错误。rubydocumentation在connect下建议Errno::EINVAL-theaddresslengthusedforthesockaddrisnotavalidlengthfortheaddressfamilyorthereisaninvalidfamilyinsockaddr但是当我尝试将blue连接到其自身的另一个端口时,由于相同的参数工作正常,这可能是错误的?这是代码片段:MY_NAME=S

c - 文件传输程序中的 send() 和 sendto() 阻塞

似乎当我像这样使用send()函数(在TCP文件传输程序中)时while((count=recv(socketConnection,buff,100000,0))>0)myfile.write(buff,count);函数recv()只是等到整个数据都来了,当它不再接收任何数据但在UDP程序的类似程序中时退出循环while((n=recvfrom(sockfd,mesg,1024,0,(structsockaddr*)&cliaddr,&len))>0)myfile.write(mesg,n);recvfrom()函数只是阻塞并且由于某种原因不会退出循环,据我所知,recv()和rec

java - 谷歌 Protocol Buffer (Java 到 C++)

我正在尝试在Java和C++之间设置TCP/IP套接字连接,在Windows上使用Java,在RaspberryPi上使用C++。正在传输的消息是GoogleProtocolBuffer消息,其原型(prototype)设置如下:packagepackage_name;messageWin2Pi{optionalint32num1=1;optionalint32num2=2;optionalint32num3=3;optionalint32num4=4;optionalboollogic1=5;optionalboollogic2=6;optionalboollogic3=7;opti

c - 保证在一次 send() 调用(tcp 套接字)中发送的数据的最小大小是多少?

这个问题在这里已经有了答案:Whyisitassumedthatsendmayreturnwithlessthanrequesteddatatransmittedonablockingsocket?(1个回答)关闭9年前。在select之后返回并为tcp套接字设置了写入fd。如果我尝试在该套接字上发送数据,使用send一次发送的数据的最小保证大小是多少?接口(interface)?我知道我必须运行一个循环以确保所有数据都已发送。我仍然想了解发送的最低保证数据是多少以及为什么?

c# - tcp 服务器 : How to send something and close the TCP connection afterwards

我正在使用在我的C#应用程序中给出的tcpServer:-http://www.codeproject.com/Articles/488668/Csharp-TCP-Server它有一个TcpServer类,可以打开一个端口并开始监听它。我通过TcpServer类提供的OnDataAvailable事件处理程序接收数据。问题是,客户端期望并依赖于tcp服务器关闭连接。在关闭连接之前,(有条件地)我想将一些数据发送回客户端。这是我为实现相同目标而编写的内容。staticvoidmyServer_OnDataAvailable(TcpServerConnectionconnection){

c - 测试 Fortran IPC : Sending 4 MiB of data using TCP/IP is equally fast as sending 100 B

我目前正在测试在两个Fortran程序之间有效传递数据的不同方法。我试过写入文件、管道和TCP/IP。我的测试结果如下所示。请注意,图表仅显示4*10^4B的时间,因为这是我为文件和管道设置的高度。4*10^6B测试只针对TCP/IP程序进行。为了测试执行时间,我使用了大多数Linux发行版中的time程序,即:time./program。然后我使用real值作为我的时间。很明显,写入文件和使用管道是线性的。有一些开销,但它非常简单。然而,TCP/IP协议(protocol)似乎不受影响-无论数据量如何。实际发生的是:B.f90启动并调用server.c,在localhost:5555

sockets - 为什么 skb_buffer 需要跳过 20 个字节才能在数据包输入时读取传输缓冲区?

我正在Linux中编写一个网络模块,我看到只有从skb缓冲区跳过20个字节后才能提取tcpheader,即使API是“skb_transport_header”。其背后的原因是什么?有人可以详细解释一下吗?传出数据包不需要同样的。我知道在接收数据包时,当数据包从L1流向L5时,header会被删除。但是,当数据包传出时,会添加header。这在这里有何不同?/**对于输入包**/structtcphdr*tcp;tcp=(structtcphdr*)(skb_transport_header(skb)+20);/**对于传出数据包**/structtcphdr*tcp;tcp=(str