我想在客户端和服务器之间进行文件传输,客户端向服务器端传输没有问题,但从服务器向客户端传输就出问题了。客户端开始是用for循环send,而服务器则用一个线程接收。当服务器接收完之后对文件进行某些处理再传回客户端,这时就出问题了。当客户端发完数据之后就用receive等待。请哪位高手指点一下,不按照我开始说的也行,反正是实现这个功能:客户端传文件给服务器,服务器对该文件做了处理之后再把该文件传回客户端,而且能够允许多个客户端同时进行。谢谢!
解决方案 »
- 按钮消息响应函数也能被调用吧
- MFC程序运行后隐藏的问题
- 我是菜鸟,想请高手推荐几本学习VC++的收!!!
- teechar5中关于AddRealTime函数的用法?
- 急!关于Explorer右键菜单, 不是载入,是关于分离Dll
- 急,请高手指教,怎样将"list Control"控件里面的数据打印出来?
- 程序流程!!!为什么执行完跳到奇怪的地方去了???
- 敬请高手前来指教,高分丰送
- 想在对话框显示时,把输入焦点设置在一个ID 为ID_TEST的按钮上,如何实现?
- 请问那有中文《WINDOWS程序设计》电子书????
- gethostbyname程序运行不了呀
- 问个Excel里日期转换为十进制的问题,能答出来的请看看
pf = fopen("sendfile.txt", "rb");
while(1) // send file
{
fread(buffer, 1, 1024, pf);
ret = send(server, buffer, strlen(buffer), 0);
if(ret == 0)
break;
}
fclose(pf);pf = fopen("receivefile.txt", "wb");
while(1) // receive file
{
ret = recv(server, buffer, 1024, 0); // 这个地方收不到数据
if(ret == 0)
break;
fwrite(buffer, 1, ret, pf);
}
fclose(pf);服务器的线程主要代码如下:
while(1)
{
ret = recv(client, buffer, 1024, 0);
if(ret == 0)
break;
fwrite(buffer, 1, ret, pf);
fclose(pf);
...... // 对接收后的文件进行处理之后再发给客户端,但这个时候好象不运行下面的代码了。
pf = fopen("temp.txt", "rb");
while(1)
{
fread(buffer, 1, 1023, pf);
ret = send(client, buffer, strlen(buffer), 0);
if(ret == 0)
break;
}
}
客户端或是服务器端不知道哪个地方不对。
我说的是这行。你是怎么写的?