|

楼主 |
发表于 2005-1-10 21:54:10
|
显示全部楼层
我写个c/s结构的网络程序遇到这样的问题:
server端:
- char buf[1024];
- int sock = accept(-----);
- FILE *out = fdopen(sock);
- FILE *tmpFile = fdopen(mkstemp("tmpXXXXX"));
- //写入tmpXXXXXX的文件内容
- while([color=Magenta]fgets(buf,sizeof(buf),tmpFile)[/color] != NULL)
- {
- fputs(buf,out);
- fflush(out);
- }
- //不fclose(out);
复制代码
client端:
- int sock = connect(------);
- char buf[1024];
- FILE *out,*in;
- out = fdopen(STDOUT_FILENO,"r+");
- in = fdopen(sock,"r");
- while(fgets(buf,sizeof(buf),in) != NULL)
- {
- fputs(buf,out);
- }
复制代码
上述代码意在将某个临时文件(比如"ls -l > tmpFile"得到的文件)的内容发到client,在client端将套接字流绑定到STDOUT_FILINO,直接将读到的内容输出到屏幕。
但是,在输出完文件内容后,堵在彩色那一句上跳不出while |
|