草庐IT

recvfrom

全部标签

android - java.net.SocketException : recvfrom failed: ECONNRESET (Connection reset by peer) Over WIFI 异常

当我发送一张被转换为字符串的图像和带有请求的欢迎文本时。服务器长时间没有响应并将我响应为java.net.SocketException:recvfromfailed:ECONNRESET(Connectionresetbypeer)这只发生在wifi上。请提供相同的任何解决方案。 最佳答案 我会建议你做这些卫生检查来解决这个问题打开您正在使用的浏览器并尝试复制url(用作请求行)并将其粘贴到您的MOBILEDEVICE的浏览器中,如果您仍然遇到相同的错误或者可能是连接被拒绝这意味着您的移动设备和运行服务器的个人电脑不在同一网络上。

c++ - UDP sendto() 和 recvfrom() 最大缓冲区大小

我知道我可以使用这些函数的默认最大缓冲区大小是65507(5535-IPv4header-UDPheader)。但是,有没有办法改变这种情况?我需要能够发送更大的缓冲区~66000字节。我尝试使用setsockopt()函数,但它似乎不起作用。谢谢! 最佳答案 没有。UDP仅提供数据报作为IP数据包的数据部分,IP数据包具有16位长度字段,因此将数据限制为2^16字节(包括header),或UDP数据部分为65507字节(假设没有ipv4选项),除了将它们分成几个数据包并自己处理重组等之外,没有办法用UDP处理更大的数据包。

python - 通过原始套接字进行 TCP 握手,为什么 recvfrom 挂起?

我正在尝试实现握手功能。我正在发送SYN数据包,服务器通过ACK数据包进行响应。为了获得服务器响应,我使用了挂起的recvfrom函数。这是我的代码。importsocket,sysfromstructimport*importcodecsdefchecksum(msg):s=0foriinrange(0,len(msg),2):w=ord(msg[i])+(ord(msg[i+1])>16)+(s&0xffff);s=s+(s>>16);s=~s&0xffffreturnstry:s=socket.socket(socket.AF_INET,socket.SOCK_RAW,socke

network-programming - recvfrom 最大缓冲区 TCP/IP

我正在编写一个小的C程序来理解套接字。recvfrom返回数据的最大长度是多少?recvfrom(raw,packet_buffer,buf_size,...);Linux中的最大buf_size是多少。有没有和这个size_t相关的常数?谢谢 最佳答案 这并不是一个真正的直接答案……对这个问题有些倾斜。对于TCP/IP,即使您确定了系统的最大大小,最好实现不依赖于此的代码。使用面向流的套接字,多余的数据不会丢失。所以你可以再次调用接收函数来检索剩余的数据。但是,对于面向消息(UDP)的连接来说情况并非如此。

c++ - TCP recvfrom() 不存储 'from'

我正在使用TCP创建一个服务器程序,我想获取我刚刚收到的消息的发件人的IP地址。这是我的代码:caseFD_READ:{//Incomingdata;getreadytoreceivecharbuffer[DEFAULT_BUFLEN];intbytes_received;memset(buffer,'\0',sizeof(buffer));structsockaddr_inrecvIn;intrecv_length=sizeof(structsockaddr);memset((void*)&recvIn,'\0',recv_length);bytes_received=recvfro

c - UDP recvfrom查询

intrecvfrom(SOCKETsocket,char*buffer,intbuflen,intflags,structsockaddr*from,int*fromlen);我知道recvfrom()在从套接字读取buflen后立即返回。我的问题是-如果我请求了2000的buflen并且套接字队列中的单个数据包的大小为2400怎么办?如果我请求的buflen为2000,而套接字队列中的单个数据包大小为1400,会怎样?上述问题的答案是否适用于TCP和UDP?如果不是,有什么区别。提前感谢您的回复。 最佳答案 首先,recvfro

python - 如何从 python 中的另一个线程中止 socket.recvfrom()?

这看起来像是HowdoIabortasocket.recv()fromanotherthreadinPython的副本,但它不是,因为我想在线程中中止recvfrom(),这是UDP,而不是TCP。这可以通过poll()或select.select()解决吗? 最佳答案 如果你想取消阻止从另一个线程读取UDP,请向它发送数据报!Rgds,马丁 关于python-如何从python中的另一个线程中止socket.recvfrom()?,我们在StackOverflow上找到一个类似的问题:

c++ - 如何使用 recvfrom 获取 AF_INET6 套接字的地址

recvfrom要求第5个参数是指向sockaddr结构的指针,第6个参数是指向socklen_t的指针>.manrecvfrom(3)说:Iftheactuallengthoftheaddressisgreaterthanthelengthofthesuppliedsockaddrstructure,thestoredaddressshallbetruncated.我不明白如何检索具有AF_INET6地址族的发送套接字的地址,因为sockaddr_in6的大小大于sockaddr因此它将是被recvfrom截断。recvfrom不能检索大于sizeof(sockaddr)的地址,我理

c - recvfrom() 何时使用 UDP 套接字返回 0?

我是这样检查recvfrom()的返回值的:while((n=recvfrom(sockfd,buf,BUF_SIZE,0,NULL,NULL))>0)我尝试关闭发送方的套接字,但recvfrom()仍然阻塞。手册说recvfrom()在对等方执行有序关闭时返回0。关闭UDP套接字没有用,对吧?任何答案将不胜感激。谢谢。 最佳答案 recvfrom的返回值是接收到的数据报中的用户数据量。0的返回值对于UDP是可接受的:这并不意味着对等方已关闭连接,因为写入长度为0的数据报是可接受的。 关

linux - recvfrom() 超时与 alarm()

我正在调试以下代码:signal(SIGALRM,testt);alarm(1);result=recvfrom(listening_socket,buf,maxlen,0,&from,&fromlen);printf("stoped\n");如man3siginterrupt所述,警报应该中断系统调用,但在我的例子中它没有。调用警报处理程序,但recvfrom未被中断。However,whenanewsignalhandlerisspecifiedwiththesignal(2)function,thesystemcallisinterruptedbydefault.如果我在设置警报