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

📄 105350.htm

📁 在天极网上发布的各类delphi原码及技巧文档
💻 HTM
📖 第 1 页 / 共 2 页
字号:
 begin<br> Memo2.Lines.Add(Socket.ReceiveText);<br> end;</p><p>procedure TChatForm.ServerSocketClientRead(Sender: TObject;<br> Socket: TCustomWinSocket);<br> begin<br> Memo2.Lines.Add(Socket.ReceiveText);<br> end;<br>   这两段代码分别是服务器方和客户机方在收到对方的消息时,由Delphi触发的,作用是在memo2中显示收到的消息。其中,ClientSocketRead中的Socket实际上就是Socket本身,而在ServerSocketClientRead中的Socket实际上是ServerSocket.Socket.Connection[]中的某个Socket。不过在Delphi中,对服务器方的Socket进行了有效的封装。<br> procedure TChatForm.ServerSocketClientConnect(Sender: TObject;<br> Socket: TCustomWinSocket);<br> begin<br> Memo2.Lines.Clear;<br> end;<br> procedure TChatForm.ClientSocketDisconnect(Sender: TObject;<br> Socket: TCustomWinSocket);<br> begin<br> ListenItemClick(nil);<br> end;<br>   这两段比较简单。其中ServerSocketClientConnect在ServerSocket收到一个新的连接时触发。而ClientSocketDisconnect在ClientSocket发出Disconncet时触发。</p><p>procedure TChatForm.Exit1Click(Sender: TObject);<br> begin<br> ServerSocket.Close;<br> ClientSocket.Close;<br> Close;<br> end;<br> procedure TChatForm.Disconnect1Click(Sender: TObject);<br> begin<br> ClientSocket.Active := False;<br> ServerSocket.Active := True;<br> end;<br>   第一段为关闭应用程序。在标准Socket中,每个Socket在关闭时,必须调用closesocket()方法,否则系统不会释放资源。而在ServerSockt.Close和ClientSocket.Close中,系统内部肯定调用了closesocket()方法。<br> 三、标准Socket与Delphi中的Socket。<br> 标准的Socket的应用程序框架如下:<br> Server方: Socket()[ 新建一个Socket]--Bind()[ 同服务器地址邦定 ]--Listen() --Accept()--block  wait--read()[接受消息,在windows平台中,方法为send(TCP),或者是sendto(UDP)]--处理服务请求--Write()[发送消息,在windows平台中,方法为send(TCP),  或者为sendto(UDP)。<br> Client方相对简单:Socket()--Connect()[通过一定的port连接特定的服务器,这是与服务器建立连接]--Write()--Read()。<br>   Socket可以是基于TCP的,也可以是基于UDP,同时Socket甚至建立在其他的协议,比如IPX/SPX,DECNet等。在新建一个Socket时,可以指定新建何类Socket。Bind()用来同服务器的地址邦定,如果一个主机只有一个IP地址,实际上邦定的作用就相对多余了。Listen()开始监听网络,Accept()用于接受连接,其返回值是保持同客户机联系的Socket。<br>   在Delphi中,对于Windows中的Socket进行了有效的封装。在Delphi中,按其继承关系,可以分层两类:<br> 一、TComponent--TAbstractSocket--TCustomSocket--TCustomServerSocket--TServerSocket<br> TComponent--TAbstractSocket--TCustomSocket--TClientSocket<br> 二、直接从TObject继承过来:<br> TObject--TCustomWinSocket--TServerWinSocket<br> TObject--TCustomWinSocket--TClientWinSocket<br> TObject--TCustomWinSocket--TServerClientWinSocket<br>   可以看出第一类建立在TCustomSocket基础上,第二类建立在TCustomWinSocket的基础上。第一类建立在TComponet的基础上,第二类直接构建在TObject基础上。因此如果用户非常熟悉Socket并且想要编写控制台程序时,可以使用TCustomWinScoket类。<br>   同uses中可以看出,它们都在ScktComp.pas中实现,而在schtComp.pas中,则包含了winsock.pas文件,如果继续深入winsock文件,在其中可以发现所有的Windows  Socket的基本方法。<br> <br>   实际上,如果你了解了标准Socket的应用程序框架,对于使用Delphi编写Socket应用程序也就得心应手了;这不是说你必须了解复杂的Socket中的标准函数,也没有必要,因为Delphi已经为你做了很好的封装了,这也正是Delphi的强势所在,你只要了解那么一点点的基本框架。<br>   这是我对Delphi中的Socket应用的理解,不足之处希望大家指正。同时也乐于为大家解答Delphi中有关Socket的问题。</p><p></p></td></tr></table><br><img src="/xslimages/content/buttom.gif" align="absmiddle"></img>        相关内容        <br><ul></ul><br><font color="#000000"><font color="#1C82C5"><img src="/xslimages/content/buttom.gif" align="absmiddle"></img></font>            相关链接          </font><br><ul><a href="http://bbs.cpcw.com/forum/vb/">到程序方舟论坛,论坛主持人为你答疑!<br><br></a></ul><a href=""><font color="#FF9900"><font color="#CC0000"></font></font></a><font color="#000000"><font color="#1C82C5"><img src="/xslimages/content/buttom.gif" align="absmiddle"></img></font>               更多的                </font><br><table width="70%"><tr><td width="30%" valign="top" align="left"><ul></ul></td><td width="30%" valign="top" align="left"></td></tr></table></td></tr></table><table width="98%" border="0" cellspacing="0"><tr><td width="85%" height="19" align="center" bgcolor="#FDF0C4"><a href="mailto:ph@cpcw.com">      本文版权归作者和天极网共同所有,如有任何版权问题,请与我们联系。        </a></td><td width="15%" bgcolor="#FFCC66" height="19">          <a href="/index.htm">            回首页          </a>        </td></tr></table><br></td><td colspan="2" valign="top" width="25%" bgcolor="#eeeeee"><table width="97%" align="center"><tr><td bgcolor="#ff9900" width="182" height="15"></td></tr></table><table width="97%" border="0" cellpadding="3" align="center"><tr><td valign="top" height="23" border="1" bgcolor="#eeeeee" cellspacing="0" bordercolor="#ff9900"><div align="center">             火热链接          </div></td></tr><tr bgcolor="#F5F5F5"><td width="27%" height="20" align="left"><div align="left"><a href="/33554432/36700160/116464.htm">淄博广电被罚 吉通陪绑……</a><br><a href="/33554432/36700160/116429.htm">图文:首信公司与ECnet建全球B2B采购网</a><br><a href="/33554432/36700160/116416.htm">“反色情”触及儿童网站</a><br><a href="/33554432/36700160/116409.htm">WAP,未来的未来</a><br><a href="/33554432/36700160/116406.htm">日本:5年后IT业超美国</a><br><a href="/33554432/36700160/116394.htm">美国在线和时代华纳:引判例对付审查</a><br><a href="/33554432/36700160/116367.htm">WAP收费标准再次推迟出台</a><br><a href="/33554432/36700160/116348.htm">网络经济任重道远</a><br><a href="/33554432/36700160/116319.htm">苹果:我们并未对任何人施压</a><br><a href="/33554432/36700160/116322.htm">法官的离职不会影响微软案</a><br></div></td></tr></table><br><table width="97%" border="0" cellpadding="3" align="center"><tr bgcolor="#ff9900"><td valign="top" height="20"><div align="center">                        天极搜索          </div></td></tr><tr bgcolor="#F5F5F5"><form action="http://search.yesky.com/servlet/search" method="post" name="search" onsubmit="form_onsubmit(); return ValidationPassed;"><td width="27%" height="20" align="center"><div><script language="javascript">          function form_onsubmit() {            ValidationPassed = true ;            if (document.search.keyword.value=="") {               alert ("请输入搜索关键字!");               ValidationPassed=false;             }               return ValidationPassed;           }       </script><input name="keyword" id="keyword" class="nava" size="12"></input><input type="hidden" name="classify" value="keyword"></input><input type="hidden" name="no" value="34603008"></input><input onClick="form_onsubmit(this.form);" style="HEIGHT:22px;WIDTH:40px" type="submit" value="搜索" name="submit2"></input></div></td></form></tr></table><div align="left"><font color="#000000"><br><table width="100%" border="0" cellspacing="0" cellpadding="0"><tr align="center"><td><table width="100%" border="0" cellspacing="0" cellpadding="0"><tr><td width="10" height="2"><img src="/xslimages/school/pathboy-ruanjian.gif" width="32" height="32"></img></td><td width="186" height="2" valign="top"><table width="100%" border="1" cellspacing="0" cellpadding="0" bordercolordark="#FFFFFF" bordercolorlight="#000000" bgcolor="#6898D0"><tr align="center"><td height="26"><font color="#FFFFFF">                                          MyDown下载                                        </font><font class="nava" color="#FFFFFF"></font></td></tr></table></td></tr></table></td></tr></table><table border="0" cellpadding="0" cellspacing="1" width="100%" align="center"><tbody><tr align="left"><td bgcolor="#ffffff"><script type="text/javascript" language="javascript" src="http://www.mydown.com/mydown.js"></script><br></td></tr></tbody></table><table width="100%" align="center"><tr><td align="center"><tr><td align="center"><a href="http://www.hoyodo.com"><img border="0" src="http://www.hoyodo.com/home/images/banner/botton.gif" width="120" height="60"></img></a><br><br><a href="http://e.yesky.com"><img border="0" src="http://e.yesky.com/images/logo_e2.gif" width="120" height="60" alt="天极E时代"></img></a></td></tr></td></tr></table></font></div><br></td></tr></table><table width="97%" border="0" cellspacing="0" cellpadding="0" align="center"><tr><td><div align="center"><a href="/hdong/gao.htm" target="_blank">欢迎投稿</a>|            <a href="/bill/index.html" target="_blank">市场联系</a>|            <a href="/serve/dnbjs.htm" target="_blank">关于我们</a>|            <a href="/maillist/index.html" target="_blank">邮件列表</a>|            <a href="/hdong/zaopin.html" target="_blank">加入我们</a>|            <a href="/hdong/xinsi.html" target="_blank">隐私条款</a></div></td></tr></table><hr height="1" size="1" width="760"></hr><td width="57%" valign="top" rowspan="1" align="center"><div align="center"><script language="JavaScript" src="http://ad.cpcw.com/js/school.js"></script></div></td><table width="97%" border="0" cellspacing="0" cellpadding="0" align="center"><tr></tr><tr></tr><tr></tr></table><table width="97%" border="0" cellspacing="0" cellpadding="0" align="center"><tr><td><div align="center"><span class="nava"><font color="#000000" face="Arial, Helvetica, sans-serif">              Copyright (C) 1999 Yesky.com, All Rights Reserved            </font><font color="#000000"><br>              版权所有                <font face="Arial, Helvetica, sans-serif">              Yesky              </font></font></span></div></td></tr></table><script> document.write("<a href=http://best.netease.com/cgi-bin/view/viewbasic.cgi?rkai target=_blank> <img style=visibility:hidden src=http://best.netease.com/cgi-bin/log.cgi?user=rkai&refer="+escape(document.referrer)+"&cur="+escape(document.URL)+" border=0 alt=网易中文排行榜 width=15 height=15></a>");</script><A HREF="http://best.nease.net/cgi-bin/view/viewbasic.cgi?cpcw" TARGET="_blank"><IMG SRC="http://best.nease.net/cgi-bin/log.cgi?user=cpcw" style="visibility:hidden"/></A><br><iframe frameborder="0" scrolling="no" src="http://count.yesky.com/servlet/count?articleno=105350" height="0" width="100%"></iframe></body></html>

⌨️ 快捷键说明

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