⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 subject_19511.htm

📁 一些关于vc的问答
💻 HTM
📖 第 1 页 / 共 2 页
字号:
<p>
序号:19511 发表者:hf 发表日期:2002-10-29 14:44:46
<br>主题:哪位高手帮忙指点一下,看看我的代码有什么错误
<br>内容:各位先生:<BR>&nbsp;&nbsp;&nbsp;&nbsp; 我也是VChlep论坛的一个普通会员,目前我在帮实验室做一个网络存取显示的程序,这个程序主要是从工控机(轻核聚变中加热等离子体的微波天线控制机器)上取的一个数据文件,然后显示出来。我写了两个进程,但始终没办法连上。麻烦你指教一下。程序的要点如下:<BR>&nbsp;&nbsp;&nbsp;&nbsp; 客户程序先连上服务器程序,然后向服务器发送一个文件名,服务器根据文件名进行查找,如果存在,则先发送文件的长度,再发送文件数据,如果不存在,则发送长度为2的“NO”字符。客户程序接受文件后保存在本地上,在利用显示模块显示。<BR> <BR>客户进程<BR>void CMainFrame::OnShotnum() <BR>{<BR> // TODO: Add your command handler code here<BR>&nbsp;&nbsp;&nbsp;&nbsp;char filename[60];<BR>&nbsp;&nbsp; <BR>&nbsp;&nbsp; int i;<BR>&nbsp;&nbsp;&nbsp;&nbsp;if(dlg.DoModal()==IDOK)<BR> {<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;FILE *fp;<BR>&nbsp;&nbsp;<BR>&nbsp;&nbsp;sprintf(filename,"c:\\lhcd\\data\\S%ld.txt",dlg.m_ShotNum);<BR>&nbsp;&nbsp;fp=fopen(filename, "r");<BR>&nbsp;&nbsp;&nbsp;&nbsp; for (i=0;i&lt;60;i++)<BR>&nbsp;&nbsp; { CLHCDApp *app=(CLHCDApp *)AfxGetApp();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; app-&gt;netfilename[i]=filename[i];<BR>&nbsp;&nbsp;}<BR>&nbsp;&nbsp;if(fp==NULL)<BR> {<BR>&nbsp;&nbsp;<BR>&nbsp;&nbsp;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; AfxBeginThread(ClientUrlThreadProc, GetSafeHwnd(), THREAD_PRIORITY_NORMAL);<BR>&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;return;<BR>&nbsp;&nbsp;}<BR>&nbsp;&nbsp;&nbsp;&nbsp; fclose(fp);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; // AfxBeginThread(ClientUrlThreadProc, GetSafeHwnd(), THREAD_PRIORITY_NORMAL);<BR>&nbsp;&nbsp;CWinApp *pAfx=AfxGetApp();<BR> <BR>&nbsp;&nbsp;pAfx-&gt;OpenDocumentFile(filename);<BR> }<BR>//////////////////////////////////////////////////////////////////////////////////////////////<BR> <BR>UINT ClientUrlThreadProc(LPVOID pParam)<BR>{ <BR> CSockAddr sbServer=CSockAddr("202.127.205.153",1020);<BR> try<BR> {<BR> CBlockSocket&nbsp;&nbsp;mysocket;<BR> mysocket.Create();<BR> mysocket.Connect(sbServer);<BR> CLHCDApp *app;<BR> app=(CLHCDApp *)AfxGetApp( ); <BR> char *DataBuf;<BR> char&nbsp;&nbsp;filelen[20];<BR> int uiFileLen;<BR> mysocket.Write(app-&gt;netfilename,60,10);<BR> int&nbsp;&nbsp;len;<BR> len=0;<BR> len=mysocket.Read(filelen,20,10);<BR> if (len==2)<BR> {<BR>&nbsp;&nbsp;::AfxMessageBox("服务器上数据文件不存在");<BR> }<BR> else<BR> {<BR>uiFileLen=atoi(filelen);<BR>mysocket.Read(DataBuf,uiFileLen,100);<BR>CFile *file=new CFile();<BR>file-&gt;Open(app-&gt;netfilename,CFile::modeCreate|CFile::modeWrite);<BR>file-&gt;WriteHuge(DataBuf,uiFileLen);<BR>file-&gt;Close();<BR> }<BR> }<BR> catch (CBlockSocketException*pe)<BR> <BR> {pe-&gt;Delete();<BR> ::AfxMessageBox("发送炮号失败");<BR> }<BR> PostMessage(NULL,WM_THREADFINISHED,0,0);<BR>&nbsp;&nbsp;&nbsp;&nbsp; return 0;<BR> }<BR>////////////////////////////////////////////////////////////////////////<BR>LRESULT CMainFrame::OnThreadFinished(WPARAM wParam, LPARAM lParam)<BR>{<BR>&nbsp;&nbsp; CLHCDApp *app=(CLHCDApp *)AfxGetApp();<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <BR>&nbsp;&nbsp;&nbsp;&nbsp;CWinApp *pAfx=AfxGetApp();<BR>&nbsp;&nbsp; pAfx-&gt;OpenDocumentFile(app-&gt;netfilename);<BR> return 0;<BR>}<BR>//////////////////////////////////////////////////////////////////////////<BR>服务器进程<BR> <BR>UpdateData(TRUE);<BR> CSockAddr saServer(INADDR_ANY,1020);<BR> try{<BR> <BR> glisten.Create();<BR> glisten.Bind(saServer);<BR> <BR> glisten.Listen();<BR> AfxBeginThread(ServerThreadProc,NULL);<BR> <BR> }<BR> catch (CBlockSocketException *e)<BR> {&nbsp;&nbsp;<BR> glisten.Cleanup();<BR> e-&gt;Delete();<BR> }<BR>GetDlgItem(IDC_BUTTON2)-&gt;EnableWindow(FALSE);<BR>GetDlgItem(IDC_MINBUTTON)-&gt;EnableWindow(TRUE);<BR>GetDlgItem(IDOK)-&gt;EnableWindow(FALSE);<BR>}<BR> <BR> <BR>//////////////////////////////////////////////////////////////////<BR>UINT ServerThreadProc(LPVOID pParam)<BR>{<BR> CSockAddr saClient;<BR> CBlockSocket sConnect;<BR> try {<BR> <BR>&nbsp;&nbsp;&nbsp;&nbsp; if(!glisten.Accept(sConnect,saClient)) <BR> <BR>&nbsp;&nbsp;{<BR>&nbsp;&nbsp; return 0;<BR>&nbsp;&nbsp;}<BR>&nbsp;&nbsp;char filename[60];<BR> sConnect.Read(filename,60,10);<BR> bool bfileexist;<BR> CFileFind filefind;<BR> bfileexist=filefind.FindFile(filename,0);<BR> <BR> if (bfileexist)<BR> <BR> {<BR>&nbsp;&nbsp;CFile *file=new CFile();<BR>&nbsp;&nbsp;file-&gt;Open(filename,CFile::modeRead|CFile::shareDenyNone);<BR>&nbsp;&nbsp;&nbsp;&nbsp; UINT uiFileLen;<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;uiFileLen=file-&gt;GetLength();<BR>&nbsp;&nbsp;char *DataBuf;<BR>&nbsp;&nbsp;char&nbsp;&nbsp;filelen[20];<BR>&nbsp;&nbsp;itoa(uiFileLen,filelen,10);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;DataBuf=new char[uiFileLen];<BR>&nbsp;&nbsp;file-&gt;ReadHuge(DataBuf,uiFileLen);<BR>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;sConnect.Write(filelen,20,10);<BR>&nbsp;&nbsp;&nbsp;&nbsp; sConnect.Write(DataBuf,uiFileLen,100);<BR>&nbsp;&nbsp;<BR> }<BR> else<BR> {<BR>&nbsp;&nbsp;char filelen[2];<BR>&nbsp;&nbsp;sprintf(filelen,"NO",2);<BR>&nbsp;&nbsp;sConnect.Write(filelen,2,10);<BR> //::AfxMessageBox("数据文件不存在");<BR> }<BR> }<BR>&nbsp;&nbsp; catch (CBlockSocketException *e)<BR> {&nbsp;&nbsp;<BR>&nbsp;&nbsp; <BR> e-&gt;Delete();<BR> }<BR>AfxBeginThread(ServerThreadProc,NULL);<BR>sConnect.Close();<BR>sConnect.Cleanup();<BR> <BR><BR> return 0;<BR>}<BR> 
<br><a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p>
<hr size=1>
<blockquote><p>
回复者:中国娃娃 回复日期:2002-10-29 16:38:52
<br>内容:CBlockSocket是什么东东?从哪个类派生的?
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:hf 回复日期:2002-10-29 16:57:47
<br>内容:不会吧,你比我还菜啊
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:中国娃娃 回复日期:2002-10-29 16:59:49
<br>内容:嗯,是挺菜的。MFC里找不到这个类。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:hf 回复日期:2002-10-29 17:02:21
<br>内容:这是从CSocket继承来的,不是MFC里的。
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>
<blockquote><p>
回复者:中国娃娃 回复日期:2002-10-29 17:08:13
<br>内容:CSocket是MFC的类,所以我才问你是从哪个类派生的呀!
<br>
<a href="javascript:history.go(-1)">返回上页</a><br><a href=http://www.copathway.com/cndevforum/>访问论坛</a></p></blockquote>
<hr size=1>

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -