It's difficult to tell what is being asked here. This question is ambiguous, vague, incomplete, overly broad, or rhetorical and cannot be reasonably answered in its current form. For help clarifying this question so that it can be reopened, visit the help center。
7年前关闭。
我试图编写一个小的代码以在Windows上通过网络发送文件,但是它似乎无法正常工作。
这是我的代码:
经过几次循环后,send函数出现错误,我不知道为什么,有人可以告诉我原因(以及解决方法:D)吗?
更新资料
我正在使用非阻塞套接字,并收到“ WSAEWOULDBLOCK”错误,但在客户端发送回东西之前,它在错误发送后仍然不发送任何东西:-(
上面的代码是C,但是C ++也是:D
7年前关闭。
我试图编写一个小的代码以在Windows上通过网络发送文件,但是它似乎无法正常工作。
这是我的代码:
char *arrFile = readFile("test.exe");
int fileSize = getFileSize("test.exe");
int sentSize = 0;
int justSent;
while(sentSize < fileSize) {
justSent = send(sock, arrFile + sentSize, fileSize - sentSize, 0);
sentSize += justSent;
}
经过几次循环后,send函数出现错误,我不知道为什么,有人可以告诉我原因(以及解决方法:D)吗?
更新资料
我正在使用非阻塞套接字,并收到“ WSAEWOULDBLOCK”错误,但在客户端发送回东西之前,它在错误发送后仍然不发送任何东西:-(
上面的代码是C,但是C ++也是:D
最佳答案
函数send
似乎无法正常工作。它返回-1,然后将其添加到justSent
。经过几次迭代后,justSent
足够负以引起分段错误。
若要解决此问题,您应该添加代码以处理错误情况(当send
返回值
这样的事情将是一个好的开始:
while(sentSize < fileSize)
{
justSent = send(sock, arrFile + sentSize, fileSize - sentSize, 0);
if(justSent < 0)
{
printf("Error!\n");
break;
}
sentSize += justSent;
}
关于c++ - 套接字应用程序无法正常工作,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/13899301/
10-13 08:22