Python C套接字recv函数返回未定义错误(errno)

Python C套接字recv函数返回未定义错误(errno),python,c,sockets,errno,Python,C,Sockets,Errno,我正在尝试制作一个文件传输程序。我目前正在编程C服务器,并使用一个简短的Python脚本作为客户端。当我尝试将文件名从Python发送到C时,recv函数(在C中)返回一个未定义的错误。它曾经收到过一半的文件名。代码如下: C服务器(指出存在问题的recv功能): Python客户端: import socket sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM) sock.connect(("localhost", 9342)) s

我正在尝试制作一个文件传输程序。我目前正在编程C服务器,并使用一个简短的Python脚本作为客户端。当我尝试将文件名从Python发送到C时,recv函数(在C中)返回一个未定义的错误。它曾经收到过一半的文件名。代码如下: C服务器(指出存在问题的recv功能):

Python客户端:

import socket
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.connect(("localhost", 9342))
sock.send(b'FGET\0')
sock.send(b'abcdeftghijklmno.txt\0')

如果有人需要我澄清/补充什么,我很乐意这样做。谢谢这里有个错误:

ssize_t result = recv(*(int*)sock, filename, 20+1, 0);
  if (result != 0){
    printf("%s", strerror(errno));
    exit(0);
  }

recv
返回写入的字节数,因此您应该检查
是否(结果我编译并执行了它,它对我有效。VG但是你提到的时间问题是虚构的。TCP将在关闭之前发送所有数据。你是对的,我的错。在这种情况下,实际上整个事情似乎都在工作,但OP被套接字在最后关闭的事实弄糊涂了。
import socket
sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.connect(("localhost", 9342))
sock.send(b'FGET\0')
sock.send(b'abcdeftghijklmno.txt\0')
ssize_t result = recv(*(int*)sock, filename, 20+1, 0);
  if (result != 0){
    printf("%s", strerror(errno));
    exit(0);
  }