谁能帮我解决以下这个问题啊?

jiang10000 2003-12-12 09:42:20
我写了一个服务器,传送文件用的。有多个客户端去连接。可是当连接超过一定数量以后,就会出现打开文件的错误,我跟踪了一下,CFileException.m_cause=11,我查了一下,这个好象是表示CFileException::sharingViolation。那这个问题是怎么回事,该怎么解决啊。为什么要连接到一定的数量以后会出现这种错误呢。我读文件的代码如下,是只读啊,应该没什么问题的。应该不会是文件读写的冲突吧?
if(!file1.Open(path,CFile::modeRead | CFile::typeBinary,&e))
{
char ee[128];
char cause[5]="-1";
strcpy(ee,(e.m_strFileName).GetBuffer(128));
e.m_strFileName.ReleaseBuffer();
strcat(ee," open error: =");
if (e.m_cause>0)
_itoa(e.m_cause,cause,10);
strcat(ee,cause);
Debug(ee);
closesocket(client);
file.Close();
return 0;
}
...全文
47 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
yifengling0 2003-12-12
  • 打赏
  • 举报
回复
应该用同步机制,

多个线程访问同一个资源多了一定会出问题
zjlgigi 2003-12-12
  • 打赏
  • 举报
回复
把读取的内容放到内存里供多个进程读取,不要多个进程读同一个文件~
或者用同步限制.

18,357

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC 网络编程
c++c语言开发语言 技术论坛(原bbs)
社区管理员
  • 网络编程
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧