关闭套接字的问题.程序停止

Fil*_*erg 1 c unix sockets

我在使用这段代码时遇到了一些麻烦.问题是当我请求服务器向我发送一些数据时,客户端只是在服务器尝试向我发送数据时断开连接,应用程序存在.

这是我认为导致问题的路线

int SendBinary(int *byte, int length)
{
    int bytes_sent;

    bytes_sent = send(connecting_socket, byte, length, 0);

    return bytes_sent;


    return 0;
}

void SendFile(FILE *fp, int file_size)
{
    int current_char = 0;

    do{
        current_char = fgetc(fp);

        if ( current_char == EOF )
            break;

        SendBinary(&current_char, sizeof(char));
    }
    while(current_char != EOF);

}
Run Code Online (Sandbox Code Playgroud)

任何想法我应该做些什么来防止这种情况?修改整个源代码以补充此代码段.

Gre*_*ers 6

也许您的应用程序在写入/发送期间接收SIGPIPE而不是忽略它?尝试忽略此信号或为其安装无操作处理程序.