从文件中删除第一个单词

时间:2013-10-10 05:41:14

标签: c tcp tcpclient

抱歉,如果这是一个愚蠢的问题,但我对C没有经验。我正在尝试创建一个简单的TCP客户端/服务器连接。这是它的工作原理:服务器存储几个文件,包括.txt和.jpg。当客户想要其中一个时,他会将文件名发送给服务器,读取并写入某个位置。

除了服务器的响应是“RES 状态大小数据”这一事实外,一切正常。我只对 data 感兴趣来创建新文件,但我无法拒绝将RES 状态大小写入输出文件。我试图使用strtok但因为它而得到段错误,不知道为什么。这是我从服务器收到响应并开始将其写入新文件 fp 的代码部分。

while(success == 0)
    {
        while(f_block_sz = recvfrom(fd2, buffer, sizeof(buffer), 0, (struct sockaddr*)&serveraddr2, &addrlen))
        {


            if(f_block_sz < 0)
            {
                printf("Receive file error.\n");
                break;
            }
            int write_sz = fwrite(buffer, sizeof(char), f_block_sz, fp);
            if(write_sz < f_block_sz)
            {
                printf("File write failed.\n");
                break;
            }
            bzero(buffer, LENGTH);
        }

        printf("ok!\n");
        success = 1;
        fclose(fp);
    }

我甚至不知道什么是最好的。我应该在写入新文件之前删除那些“无用的”单词,还是应该在文件完成后编辑它?

提前致谢。

1 个答案:

答案 0 :(得分:1)

我不确定,但我只想到你的“RES状态大小”是固定大小,比如'x'字节,然后写入输出文件时只跳过x字节的接收数据......

int write_sz = fwrite(buffer + x, sizeof(char), f_block_sz, fp);

我不确定这是好的做法,甚至是不正确的,我只是想到了。