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

📄 chapter15.htm

📁 这是一个学写JAVA的好东西
💻 HTM
📖 第 1 页 / 共 2 页
字号:
	COLOR: #000000; TEXT-DECORATION: underline}.navigater {	FONT-SIZE: 12px; COLOR: #333333; LINE-HEIGHT: 19px; TEXT-DECORATION: none}A.navigater:hover {	COLOR: #cc0000}.g1 {	FONT-SIZE: 14px}.g2 {	PADDING-LEFT: 21px; PADDING-TOP: 5px}.g3 {	FONT-WEIGHT: bold; COLOR: #ab6503}.g4 {	COLOR: #ff0000}.img {	BORDER-RIGHT: #800000 1px solid; BORDER-TOP: #800000 1px solid; BORDER-LEFT: #800000 1px solid; BORDER-BOTTOM: #800000 1px solid}.img1 {	BORDER-RIGHT: #000000 1px solid; BORDER-TOP: #000000 1px solid; BORDER-LEFT: #000000 1px solid; BORDER-BOTTOM: #000000 1px solid}.f14 {	FONT-SIZE: 14px; LINE-HEIGHT: 26px}.f20 {	FONT-WEIGHT: bold; FONT-SIZE: 20px}.top_red {	COLOR: #d70709; TEXT-DECORATION: none}.center01 {	COLOR: #000000; LINE-HEIGHT: 20px}.center01 TD {	COLOR: #000000; LINE-HEIGHT: 20px}.center01 A:link {	COLOR: #000000; TEXT-DECORATION: none}.center01 A:visited {	COLOR: #000000; TEXT-DECORATION: none}.center01 A:hover {	COLOR: #2b7128; TEXT-DECORATION: underline}.center02 {	COLOR: #194e00; LINE-HEIGHT: 20px}.center02 TD {	COLOR: #194e00; LINE-HEIGHT: 20px}.center02 A:link {	COLOR: #194e00; TEXT-DECORATION: none}.center02 A:visited {	COLOR: #194e00; TEXT-DECORATION: none}.center02 A:hover {	COLOR: #194e00; TEXT-DECORATION: underline}--></style><TABLE width=760 border=0 align=center cellPadding=0 cellSpacing=0 bgcolor="#F3F3F3" valign="top">	<tr class="center01"> 		<td width="488" style="padding-left:10px;padding-top:10px">			<a href="index.php">连载</a>       &gt; <a href="slist.php?class1=6">程序设计</a>      &gt; <a href="slist.php?class2=7">Java</a>      &gt; <a href="serialize.php?id=387">Java网络编程专辑</a>		</td>		<td width="280" style="padding-left:10px;padding-top:10px">			<div align="center">			<font color=#0000FF><a href='chapter.php?id=387&volume=2&chapter=1'>上一页</a></font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;			<font color=#0000FF><a href="serialize.php?id=387">回书目</a></font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;			<font color=#0000FF><a href='chapter.php?id=387&volume=2&chapter=3'>下一页</a></font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;			</div>		</td>	</tr>	<tr class="center01">		<td colspan="2" align="center" style="padding-left:10px;padding-top:10px">&nbsp;</td>	</tr>	<TBODY>	<TR> 		<TD colspan="2" align=middle>			<BR>			<div style="FONT-SIZE: 18pt; COLOR: #990000; FONT-FAMILY: 楷体_GB2312" align=center><B>网络协议</b></div><br><div style="COLOR: #990000; font-family: ; font-size: 18px;宋体;" align=center>Java网络编程之传输控制协议(一2)</div>			<DIV style="PADDING-RIGHT: 10px; PADDING-LEFT: 10px; FONT-SIZE: 10.5pt; COLOR: black; LINE-HEIGHT: 180%" align=left>                         <br>&nbsp;&nbsp;&nbsp;&nbsp;<P><STRONG>二、TCP和客户端/服务器范型<BR></STRONG><BR>  在网络编程中(同样在其它形式的通讯中,例如数据库编程),使用套接字的应用程序也被分为两类--客户端程序和服务器程序。你可能对"客户端/服务器编程"术语比较熟悉,尽管这个术语的准确意思你不一定清楚。下面的范例就是讨论这个主题。<BR><BR>  1、 客户端/服务器范型<BR><BR>  客户端/服务器范型把软件分为两类--客户端程序和服务器程序。客户端软件启动一个连接并发送请求,而服务器软件监听连接并处理请求。在UDP编程环境中,没有建立实际的连接,并且UDP应用程序可以在相同的套接字上建立并接收请求。在TCP环境中,两台计算机之间建立了连接,客户端/服务器范型是相对应的。<BR><BR>  当软件作为客户端或者服务器的时候,它严格地定义了角色以更容易适应我们所熟悉的思维模型。软件要么启动请求,要么处理请求。在两种角色之间切换使系统更加复杂。即使允许切换,在某个特定的时刻软件程序也只能是客户端,而另一个必须是服务器。如果两个同时是客户端,就没有服务器处理请求了。<BR><BR>  客户端/服务器范型是一个重要的理论概念,它广泛用于实际应用程序中。目前也有其它的通讯模型,例如对等(peer to peer)模型,在这种模型中每一方都可以启动通讯。但是客户端/服务器概念是更加流行的选择,因为它很简单并且在多数网络编程中使用。<BR><BR>  2、网络客户端<BR><BR>  网络客户端启动连接,通常处理网络事务。服务器程序用于实现客户端的请求--客户端不用实现服务器的请求。尽管客户端处于控制地位,但是服务器端仍然有一些功能。客户端可以要求服务器删除本地文件系统的所有文件,但是服务器并不是必须执行这个任务的。<BR><BR>  网络客户端使用双方都同意的通讯标准(即网络协议)与服务器对话。例如HTTP客户端使用的命令组就与邮件客户端使用的不同,而且目的也完成不同。把HTTP连接到邮件服务器,或邮件客户端连接到HTTP服务器,要么会出现一个错误消息,要么出现一个客户端不能理解的错误消息。因为这个原因,作为协议规格的一部分,必须使用某个端口号,这样客户端才能定位服务器。Web服务器通常运行在80端口上,而其它一些服务器可能运行在非标准的端口上,URL的习惯是不列出端口的,它假定使用80端口。<BR><BR>  3、网络服务器<BR><BR>  网络服务器的角色是绑定某个特定的端口(客户端使用它定位服务器),并且监听新的连接。尽管客户端是临时的,并且只有在用户选中的时候才运行,但是服务器程序必须不间断地运行(即使实际上没有已连接的客户端),期望某个客户端在某个时刻需要该服务。服务器程序通常作为数据自适应监视器进程引用,使用Unix用法。它持久的运行,而且一般在该服务器程序的主机启动时启动。因此服务器一直等待,直到某个客户端建立到该服务器端口的连接。有些服务器程序在某个时刻只能处理单个连接,其它一些服务器程序可以通过使用多线程同时处理多个连接。<BR><BR>  当开始连接后,服务器就服从客户端。它等待客户端发送请求,并且"忠实地"处理它们(可是服务器可以响应错误信息,特别是当请求违反某些重要地协议规则或有安全风险的时候)。某些协议(例如HTTP/1.0)通常在每个连接中只允许一个请求,而其它一些协议(例如POP3)支持一系列请求。服务器可以通过发送响应或错误消息应答客户端的请求。学习新的网络协议(编写客户端或服务器)与学习一种新的语言相似,只是语法改变了。但是典型情况下,它的命令的数量更小,使事情更简单。服务器的行为一部分由协议决定,一部分由开发者决定(某些命令是可选的,服务器不一定支持)。 </P>
<P></P>
<P>  <STRONG>三、TCP套接字和Java</STRONG><BR><BR>  Java提供了对TCP套接字的良好的支持,有两种套接字类:java.net.Socket和java.net.ServerSocket。当编写连接到已有服务的客户端软件的时候使用Socket类。当编写绑定到本地端口以提供服务的服务器软件的时候使用ServerSocket类。这是与DatagramSocket的UDP工作方式不同的地方--在TCP中,连接服务器地和从客户端接收数据的函数被分为两个独立的类。<BR><BR><BR>  Java网络编程之TCP第二部分降再周六发表,在这一部分中我将详细介绍J2EE规范中的Socket类的体系结构,在下周推出的第三部分中,将介绍如何构建客户端和服务器端程序,同时介绍另一个重要的类:ServerSocket;敬请期待。</P><br><br>          </DIV>		</TD>	</TR>	<TR> 		<TD class=center01>			<div align="center">来源:天极网 作者:<div>		</TD>		<TD width="280" class=center01>			<div align="center">			<font color=#0000FF><a href='chapter.php?id=387&volume=2&chapter=1'>上一页</a></font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;			<font color=#0000FF><a href="serialize.php?id=387">回书目</a></font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;			<font color=#0000FF><a href='chapter.php?id=387&volume=2&chapter=3'>下一页</a></font>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;			</div>		</TD>	</TR>	</TBODY></TABLE><table><tr><td width="760"> <table width="760" height="10" border="0" cellpadding="0" cellspacing="0">                        <tr>                                <td></td>                        </tr>                </table>                <!------------ 评论 ---------------->                <table width="760" border="0" cellpadding="0" cellspacing="0">                        <tr>                                <td><iframe width="100%" id=vs frameborder=0 scrolling=no src="comment_list1.php?id=387"></iframe>                                </td>                        </tr>                </table><br><script language=javascript>function CheckNetwordForm(theForm){        if("" == theForm.content.value)        {                alert("写两句吧~~");                theForm.content.focus();                return false;        }        var index;        for(index=0;index<theForm.content.value.length;index++)        {                if(" " != theForm.content.value.charAt(index))                        break;        }        if(index == theForm.content.value.length) {                alert("写两句吧~~");                theForm.content.focus();                return false;        }        if (theForm.content.value.length>100){                alert("评论字数不能超过100哦");                theForm.content.focus();                return false;        }        return true;}</script>                <!------------------ 评论 --------------->                <form name=netword method=post action="insertnetword.php" onsubmit="javascript: return CheckNetwordForm(this);">                <table width="760" border="0" cellpadding="0" cellspacing="0">                        <tr>                                <td height="25" class="text6">&nbsp;给此书打分:<a name="1"></a>                                        <select name="score">                                                <option value=5 selected>非常好</option>                                                <option value=4>还凑合</option>                                                <option value=3>一般吧</option>                                                <option value=2>不太行</option>                                                <option value=1>太差了</option>                                        </select> &nbsp; 用户名:                                        <input name="id" value=387 type="hidden" id="id">                                        <input name="backurl" value=/book/chapter.php?id=387&volume=2&chapter=2 type="hidden">                                        <input name="username" type="text" id="username" size="20" maxlength="20">                                        <font color="#666666">*评论字数请控制在一百字以内</font> </td>                        </tr>                </table>                <br>&nbsp;<textarea name="content" cols="80" rows="4" wrap="OFF" id="description"></textarea>                <input type="submit" name="Submit" value="提交">                </form>        </td> </tr></table></td></tr></table> <TABLE cellSpacing=0 cellPadding=0 width=760 border=0>  <TBODY>    <TR>       <TD width="1003" height=9 background=images/t_bj01.gif><IMG height=1     src="images/ccc.gif" width=1></TD>    </TR>  </TBODY></TABLE><TABLE cellSpacing=0 cellPadding=0 width=760 bgColor=#ffffff border=0>  <TBODY>    <TR>       <TD><HR width=760 noShade SIZE=1> </TD>    </TR>    <TR>       <TD align=middle><A class=black href="http://www.chinaren.com/"     target=_blank>ChinaRen</A> - <A class=black     href="http://big5.www.sohu.com/" target=_blank>繁体版</A> - <A class=black     href="http://hr.sohu.com/hrm.html" target=_blank>搜狐招聘</A> - <A class=black     href="http://add.sohu.com/" target=_blank>网站登录</A> - <A class=black     href="http://help.sohu.com/" target=_blank>帮助中心</A> - <A class=black     href="http://book.news.sohu.com/onClick=this.style.behavior='url(#default#homepage)';this.setHomePage('http://www.sohu.com');return"     target=_blank false;>设置首页</A> - <A class=black     href="http://adinfo.sohu.com/" target=_blank>广告服务</A> - <A class=black     href="http://www.sohu.com/about/lianxi.htm" target=_blank>联系方式</A> - <A     class=black href="http://www.sohu.com/about/privacy.html"     target=_blank>保护隐私权</A> - <A class=black href="http://www.sohu.com/about/"     target=_blank>About SOHU</A> - <A class=black     href="http://www.sohu.com/about/" target=_blank>公司介绍</A><BR> <SPAN     class=eng>Copyright &copy; 2004 Sohu.com Inc. All rights reserved. 搜狐公司         版权所有</SPAN> </TD>    </TR>  </TBODY></TABLE></center></body></html><script language="JavaScript" src="http://nielsen.js.sohu.com/nnselect.js"></script><noscript><img src='http://ping.nnselect.com/ping.gif?c=119' height='1' width='1'></noscript>

⌨️ 快捷键说明

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