socket传输图片c
发布时间: 2025-02-22 22:11:51
1. C 语言socket 的send数据太大,最大能发送多少如何分批发送
如果你SOCKET发的数据报,比如UDP协议, 那么是有最大可发送大小.
这可以用下面这样getsockopt取得最大数据报大小.
----------------------------------------
SOCKET s;
int iSize, iVal, ret;
.....
iSize = sizeof(iVal);
ret = getsockopt(s, SOL_SOCKET, SO_MAX_MSG_SIZE, (char *)&iVal, &iSize);
//-----------------------------------------
如果是TCP,则不需要这样做.
你send返回的字节数有801770个字节(是字节数吧!),和send里的规定length一样大,这可以表明你成功的将这些数据提交底层TCP协议栈去发送。
接收方要是处理成确的,是可以正确无误的收到这些数据的。
//---------------------------------------------
TCP 提供的是可靠的数据流服务 , 这意味着, 接收方,并不需要关心也不应该假定发送方调用了多少次SEND, 它只需要管的是通过若干次RECV把数据从协议栈的缓冲区读取出来。
TCP不必担心丢数据,但发送的时候,SEND要注意处理返回值,如果是阻塞方式,太多的数据会被阻塞, 如果是非阻方式,返回缓冲区满错,然后延时重发。
2. 用C语言怎么实现将数据从一台电脑传输给另一台电脑,是通过文件操作吗