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

📄 01_9_14_22.asp.html

📁 有用的VC教程,包括编程思想编程技巧程序效率等方面的指导
💻 HTML
📖 第 1 页 / 共 3 页
字号:
m_saSrvr.sin_addr.S_un.S_addr=inet_addr</td></tr></table><table width=100% ><tr><td class=a14>
(dial.m_HostAddress);</td></tr></table><table width=100% ><tr><td class=a14>
m_saSrvr.sin_port=htons(5050);</td></tr></table><table width=100% ><tr><td class=a14>
int status;</td></tr></table><table width=100% ><tr><td class=a14>
WSADATA wsaData;</td></tr></table><table width=100% ><tr><td class=a14>
m_data[0]="initializing Windows Sockets DLL....";</td></tr></table><table width=100% ><tr><td class=a14>
if((status=WSAStartup(0x0101,&wsaData))==0)</td></tr></table><table width=100% ><tr><td class=a14>
{</td></tr></table><table width=100% ><tr><td class=a14>
m_data[0]+="Succeeded";</td></tr></table><table width=100% ><tr><td class=a14>
m_bInitialized=TRUE;</td></tr></table><table width=100% ><tr><td class=a14>
}</td></tr></table><table width=100% ><tr><td class=a14>
else</td></tr></table><table width=100% ><tr><td class=a14>
{</td></tr></table><table width=100% ><tr><td class=a14>
m_bInitialized=FALSE;</td></tr></table><table width=100% ><tr><td class=a14>
}</td></tr></table><table width=100% ><tr><td class=a14>
m_sock=socket(AF_INET,SOCK_DGRAM,0);</td></tr></table><table width=100% ><tr><td class=a14>
m_data[1]="Creating socket....";</td></tr></table><table width=100% ><tr><td class=a14>
if(m_sock==INVALID_SOCKET)</td></tr></table><table width=100% ><tr><td class=a14>
{</td></tr></table><table width=100% ><tr><td class=a14>
m_data[1]+="Failed";</td></tr></table><table width=100% ><tr><td class=a14>
}</td></tr></table><table width=100% ><tr><td class=a14>
m_data[1]+="Succeeded";</td></tr></table><table width=100% ><tr><td class=a14>
m_data[2]="Binding socket....";</td></tr></table><table width=100% ><tr><td class=a14>
sockaddr_in sa;</td></tr></table><table width=100% ><tr><td class=a14>
sa.sin_family=AF_INET;</td></tr></table><table width=100% ><tr><td class=a14>
sa.sin_addr.S_un.S_addr=htonl</td></tr></table><table width=100% ><tr><td class=a14>
(INADDR_ANY);</td></tr></table><table width=100% ><tr><td class=a14>
sa.sin_port=htons(0);</td></tr></table><table width=100% ><tr><td class=a14>
if(bind(m_sock,(PSOCKADDR)&sa,</td></tr></table><table width=100% ><tr><td class=a14>
sizeof(sa))==SOCKET_ERROR)</td></tr></table><table width=100% ><tr><td class=a14>
{</td></tr></table><table width=100% ><tr><td class=a14>
m_data[2]+="Failed";</td></tr></table><table width=100% ><tr><td class=a14>
closesocket(m_sock);</td></tr></table><table width=100% ><tr><td class=a14>
}</td></tr></table><table width=100% ><tr><td class=a14>
m_data[2]+="Succeeded";</td></tr></table><table width=100% ><tr><td class=a14>
m_data[3]="Creating listener thread....";</td></tr></table><table width=100% ><tr><td class=a14>
unsigned long idThread;</td></tr></table><table width=100% ><tr><td class=a14>
m_hListenThread=CreateThread(NULL,0,</td></tr></table><table width=100% ><tr><td class=a14>
(LPTHREAD_START_ROUTINE)Listen,</td></tr></table><table width=100% ><tr><td class=a14>
(void *)this,0,&idThread);</td></tr></table><table width=100% ><tr><td class=a14>
if(m_hListenThread)</td></tr></table><table width=100% ><tr><td class=a14>
{m_data[3]+="Succeeded";</td></tr></table><table width=100% ><tr><td class=a14>
m_data[4]+="Waiting....";</td></tr></table><table width=100% ><tr><td class=a14>
}</td></tr></table><table width=100% ><tr><td class=a14>
else</td></tr></table><table width=100% ><tr><td class=a14>
m_data[4]+="Failed";</td></tr></table><table width=100% ><tr><td class=a14>
InvalidateRect(NULL);</td></tr></table><table width=100% ><tr><td class=a14>
}</td></tr></table><table width=100% ><tr><td class=a14>
</td></tr></table><table width=100% ><tr><td class=a14>
}</td></tr></table><table width=100% ><tr><td class=a14>
</td></tr></table><table width=100% ><tr>
      <td class=a14> <b><i>6.添加一个拨号对话框,名为dial,有一个文本框用来写IP地址.并在clientview.cpp中添加代码: 
        </i> </b></td>
    </tr></table><table width=100% ><tr><td class=a14>
</td></tr></table><table width=100% ><tr><td class=a14>
#include dial.h</td></tr></table><table width=100% ><tr><td class=a14>
</td></tr></table><table width=100% ><tr>
      <td class=a14> <b><i>7.在拨号项添加一个判断函数: </i></b></td>
    </tr></table><table width=100% ><tr><td class=a14>
</td></tr></table><table width=100% ><tr><td class=a14>
void CClientView::OnUpdateDial</td></tr></table><table width=100% ><tr><td class=a14>
(CCmdUI* pCmdUI) </td></tr></table><table width=100% ><tr><td class=a14>
{</td></tr></table><table width=100% ><tr><td class=a14>
// TODO: Add your command update </td></tr></table><table width=100% ><tr><td class=a14>
UI handler code here</td></tr></table><table width=100% ><tr><td class=a14>
pCmdUI->Enable(TRUE);</td></tr></table><table width=100% ><tr><td class=a14>
if(Isconnect)</td></tr></table><table width=100% ><tr><td class=a14>
pCmdUI->Enable(FALSE);</td></tr></table><table width=100% ><tr><td class=a14>
}</td></tr></table><table width=100% ><tr><td class=a14>
</td></tr></table><table width=100% ><tr>
      <td class=a14> <b><i>8.添加接收与发送消息的线程: </i></b></td>
    </tr></table><table width=100% ><tr><td class=a14>
</td></tr></table><table width=100% ><tr><td class=a14>
long WINAPI Listen(CClientView *pView)</td></tr></table><table width=100% ><tr><td class=a14>
{</td></tr></table><table width=100% ><tr><td class=a14>
char msg[2000];</td></tr></table><table width=100% ><tr><td class=a14>
pView- >m_data[5]="Sending ATTACH command";</td></tr></table><table width=100% ><tr><td class=a14>
pView- >InvalidateRect(NULL);</td></tr></table><table width=100% ><tr><td class=a14>
wsprintf(msg,"A: ");</td></tr></table><table width=100% ><tr><td class=a14>
sendto(pView- >m_sock,msg,1024,0,</td></tr></table><table width=100% ><tr><td class=a14>
(PSOCKADDR)&pView- >m_saSrvr,sizeof</td></tr></table><table width=100% ><tr><td class=a14>
(pView- >m_saSrvr));</td></tr></table><table width=100% ><tr><td class=a14>
</td></tr></table><table width=100% ><tr><td class=a14>
int saSrvrLen ,nchar;</td></tr></table><table width=100% ><tr><td class=a14>
while(1)</td></tr></table><table width=100% ><tr><td class=a14>
{</td></tr></table><table width=100% ><tr><td class=a14>
saSrvrLen=sizeof(pView->m_saSrvr);</td></tr></table><table width=100% ><tr><td class=a14>
nchar=recvfrom(pView- >m_sock,msg,1024,0,</td></tr></table><table width=100% ><tr><td class=a14>
(PSOCKADDR)&pView- >m_saSrvr,&saSrvrLen);</td></tr></table><table width=100% ><tr><td class=a14>
if(nchar<0) { pView->m_data[pView- >count++]="Error in recvform";</td></tr></table><table width=100% ><tr><td class=a14>
pView- >InvalidateRect(NULL);</td></tr></table><table width=100% ><tr><td class=a14>
}</td></tr></table><table width=100% ><tr><td class=a14>
else</td></tr></table><table width=100% ><tr><td class=a14>
{</td></tr></table><table width=100% ><tr><td class=a14>
pView->m_data[pView- >count++]=msg;</td></tr></table><table width=100% ><tr><td class=a14>
pView->Isconnect=TRUE;</td></tr></table><table width=100% ><tr><td class=a14>
pView->flag=TRUE;</td></tr></table><table width=100% ><tr><td class=a14>
pView->InvalidateRect(NULL);</td></tr></table><table width=100% ><tr><td class=a14>
}</td></tr></table><table width=100% ><tr><td class=a14>
</td></tr></table><table width=100% ><tr><td class=a14>
}</td></tr></table><table width=100% ><tr><td class=a14>
</td></tr></table><table width=100% ><tr><td class=a14>
return(0);</td></tr></table><table width=100% ><tr><td class=a14>
}</td></tr></table><table width=100% ><tr><td class=a14>
</td></tr></table><table width=100% ><tr>
      <td class=a14 height="22"> <b><i>9.同主程序一样做一个发送消息项,代码如上. </i></b></td>
    </tr></table><table width=100% ><tr><td class=a14>
</td></tr></table><table width=100% ><tr>
      <td class=a14> <b><i>10.显示程序也与主程序一样,代码如上.</i></b> </td>
    </tr></table><table width=100% ><tr><td class=a14>
</td></tr></table><table width=100% ><tr>
      <td class=a14> <b><i>11.在Project中点击Settings中选择Link项添加wsock32.lib. </i></b></td>
    </tr></table><table width=100% ><tr><td class=a14>
</td></tr></table><table width=100% ><tr>
      <td class=a14> <b><i>12.编译程序便可得到client.exe程序. </i></b></td>
    </tr></table><table width=100% ><tr><td class=a14>
</td></tr></table><table width=100% ><tr><td class=a14>
server.exe 和 client.exe 做完后,就可以在具有TCP/IP协议下的网络中执行. 通过上面的例子,你可以很快了解vc++网络编程的优点,你还可以添加其它功能项,在这我就不多加叙述了.希望我的程序能起到抛砖引玉的目的,让我们都能编出好的网络程序. </td></tr></table><table width=100% ><tr><td class=a14>
</td></tr></table><table width=100% ><tr><td class=a14>
</td></tr>
</table><br>
<style>.a1{font-size:1}</style>
<table width=100% ><tr><td align=right>(网页编辑:<a href='mailto:liu_yang@ccw.com.cn'>风之翼</a>)</td></tr></table>
</td><td class=a1 bgcolor=#f46240>&nbsp;</td>
<td valign=top width=138 align=right><table width=98% ><tr><td>
<form action='/app/gsearch1.asp' name=pdn><table width=100% ><tr><td>应用与方案
频道全文检索</td></tr>
<tr><td><input type="text" name="textfile" size=15 value=频道内检索 onfocus="this.value=''">
	<input border=0 src="../../../../../images/jian.gif" name="I1" type="image" align=absmiddle>
</td></tr>
</table>
</form>
<form name=srch action="/search/which.asp" method=post onsubmit="JavaScript:return chk()">
<table width=100% >
  <tr><td><select size="1" name="func">
  <option selected value="2">主题检索</option>
  <option value="1">周报全文检索</option>
  <option value="3">模糊词检索</option>
</select></td></tr>
  <tr><td><input type="text" name="SrchStr" size=15 value="输入待检索的词"
  onfocus="this.value=''">
  <input src="../../../../../images/jian.gif" name="I1" type="image" align="absMiddle" border=0>
  </td></tr>
</table>
<script language="JavaScript">
function chk()
{if (!document.srch.SrchStr.value){
alert("请输入需检索的词!");	
document.srch.SrchStr.focus();
return false;
}
else{if (document.srch.SrchStr.value.length>30){
alert("检索的词请不要超过30个字符!");
document.srch.SrchStr.focus();
return false;
}
}
}
</script></form>
<table width=100% ><tr><td class=f colspan=2><b>相关文章</b></td></tr>
<tr><td valign=top><IMG SRC=../../../../../img2/jiao.gif></td><td><a href='01_9_14_21.asp.html'>用VC++编写CGI程序</a></td></tr>
<tr><td valign=top><IMG SRC=../../../../../img2/jiao.gif></td><td><a href='01_9_14_19.asp.html'>用VC++6.0编写Proxy服务器</a></td></tr>
<tr><td valign=top><IMG SRC=../../../../../img2/jiao.gif></td><td><a href='01_9_14_18.asp.html'>在VC中实现FTP功能</a></td></tr>
<tr><td valign=top><IMG SRC=../../../../../img2/jiao.gif></td><td><a href='01_9_14_17.asp.html'>用Visual C++编写电子邮件程序</a></td></tr>
<tr><td valign=top><IMG SRC=../../../../../img2/jiao.gif></td><td><a href='01_9_14_16.asp.html'>如何得到多穴主机的多个IP地址</a></td></tr>
</table>
</td></tr></table></td></tr></table><br>
<table align=center width=680><tr><td align=right>
<form name=mail method=post action='/pub/subMail.asp' onsubmit='JavaScript: return chkField(this)'>
<INPUT type='hidden' name='rec' value='24254'>
您的姓名:<INPUT type="text" name=myName size=10>&nbsp;
您朋友的E-mail:<INPUT type="text" name=friendMail size=10>&nbsp;
<INPUT type="submit" value="推荐给好友">
</form>
</td></tr>
<tr><td align=right>
<b>[<a href="javascript:window.close()">关闭窗口</a>]</b>
</td></tr>
</table>
<script language="javascript">
function chkField(fmObj)
{if (!fmObj.friendMail.value){
	alert("请输入您朋友的E-mail!");
	fmObj.friendMail.focus();
	return false;
}
	return true;
}
</script>
<table align=center width=680>
<tr><td><hr size=1 width=660 color=#f46240></td></tr>
</table><br>
<p align=center>Copyright(C) ccw.com.cn,All rights reserved</p>
<p align=center><b>中国计算机世界出版服务公司版权所有</b></p>

⌨️ 快捷键说明

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