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

📄 j-chat-4-2.html

📁 在这篇免费的 dW 专有的独家教程中
💻 HTML
📖 第 1 页 / 共 2 页
字号:
menu2out.src="imagemaster/menu2.jpg"; menu3over.src="imagemaster/himenu3.jpg"; menu3out.src="imagemaster/menu3.jpg"; menu4over.src="imagemaster/himenu4.jpg"; menu4out.src="imagemaster/menu4.jpg"; menu5over.src="imagemaster/himenu5.jpg"; menu5out.src="imagemaster/menu5.jpg"; menu6over.src="imagemaster/himenu6.jpg"; menu6out.src="imagemaster/menu6.jpg"; menu7over.src="imagemaster/himenu7.jpg"; menu7out.src="imagemaster/menu7.jpg"; menu8over.src="imagemaster/himenu8.jpg"; menu8out.src="imagemaster/menu8.jpg"; menu9over.src="imagemaster/himenu9.jpg"; menu9out.src="imagemaster/menu9.jpg"; menu10over.src="imagemaster/himenu10.jpg"; menu10out.src="imagemaster/menu10.jpg"; menu11over.src="imagemaster/himenu11.jpg"; menu11out.src="imagemaster/menu11.jpg"; menu12over.src="imagemaster/himenu12.jpg"; menu12out.src="imagemaster/menu12.jpg";         var mainblurb="Main menu";        var sectionblurb="Section menu";        var feedbackblurb="Give feedback on this tutorial";        var previousblurb="Go to previous panel";        var nextblurb="Go to next panel";        var nextsectionblurb="Go to next section";        topmainover.src="../i/h-main.gif";        topmainout.src="../i/main.gif";        bottommainover.src="../i/h-main.gif";        bottommainout.src="../i/main.gif";        topsectionover.src="../i/h-section.gif";        topsectionout.src="../i/section.gif";              bottomsectionover.src="../i/h-section.gif";        bottomsectionout.src="../i/section.gif";              topfeedbackover.src="../i/h-feedback.gif";        topfeedbackout.src="../i/feedback.gif";        bottomfeedbackover.src="../i/h-feedback.gif";        bottomfeedbackout.src="../i/feedback.gif";        toppreviousover.src="../i/h-previous.gif";        toppreviousout.src="../i/previous.gif";        bottompreviousover.src="../i/h-previous.gif";        bottompreviousout.src="../i/previous.gif";        topnextover.src="../i/h-next.gif";        topnextout.src="../i/next.gif";        bottomnextover.src="../i/h-next.gif";        bottomnextout.src="../i/next.gif";        topnextsectionout.src="../i/nextsection.gif";        topnextsectionover.src="../i/h-nextsection.gif";        bottomnextsectionout.src="../i/nextsection.gif";        bottomnextsectionover.src="../i/h-nextsection.gif";      }      function iOut(image)      {        if (browser=="N3")document[image].src=eval(image + "out.src");      }      function iOver(image)      {        if (browser=="N3")document[image].src=eval(image + "over.src");      }     // --></script><script src="../i/emailfriend.js" language="javascript"></script><a href="#navskip"><img border="0" alt="Skip to main content" src="http://www.ibm.com/i/c.gif"></a><table cellpadding="0" cellspacing="0" border="0" width="100%"><tr bgcolor="#006699"><td width="300"><table cellpadding="0" cellspacing="0" border="0" width="300"><tr bgcolor="#006699"><td width="150"><img height="25" width="150" alt="IBM" src="../i/mast_logo.gif"></td><td background="../i/mgradient.gif" width="150"><font face="Verdana, sans-serif" color="#99ccff" size="-2"><b>&nbsp;</b></font><br><img alt="" height="1" width="150" src="http://www.ibm.com/i/c.gif"></td></tr></table></td><td width="300" align="left"><table cellpadding="0" cellspacing="0" border="0" width="300"><tr><td width="100"><a href="http://www.ibm.com/shop1/"><img alt="Shop" height="25" width="100" src="../i/shopibm.gif" border="0"></a></td><td width="100"><a href="http://www.ibm.com/support/"><img alt="Support" height="25" width="100" src="../i/support.gif" border="0"></a></td><td width="100"><a href="http://www.ibm.com/download/"><img alt="Downloads" height="25" width="100" src="../i/downloads.gif" border="0"></a></td></tr></table></td></tr></table><table cellpadding="0" cellspacing="0" border="0" width="100%"><tr bgcolor="#000000"><td><table cellpadding="0" cellspacing="0" border="0" width="600"><tr><td width="150" bgcolor="#006699"><img alt="" height="21" width="150" src="../i/mast_lnav_sp.gif"></td><td bgcolor="#000000" colspan="4"><table height="21" cellpadding="0" cellspacing="0" border="0"><tr><td align="center" width="79" bgcolor="#000000" height="21"><a href="http://www.ibm.com/home/" style="color: #ffffff;" class="nav"><font face="Verdana, sans-serif" color="#ffffff" size="-2"><b>IBM Home</b></font></a></td><td width="1" bgcolor="#959595"><img alt="" height="1" width="1" src="http://www.ibm.com/i/c.gif"></td><td align="center" width="74" bgcolor="#000000" height="21"><a href="http://www.ibm.com/products/" style="color: #ffffff;" class="nav"><font face="Verdana, sans-serif" color="#ffffff" size="-2"><b>Products</b></font></a></td><td width="1" bgcolor="#959595"><img alt="" height="1" width="1" src="http://www.ibm.com/i/c.gif"></td><td align="center" width="81" bgcolor="#000000" height="21"><a href="http://www.ibm.com/services/" style="color: #ffffff;" class="nav"><font face="Verdana, sans-serif" color="#ffffff" size="-2"><b>Consulting</b></font></a></td><td width="1" bgcolor="#959595"><img alt="" height="1" width="1" src="http://www.ibm.com/i/c.gif"></td><td align="center" width="81" bgcolor="#000000" height="21"><a href="http://www.ibm.com/solutions/" style="color: #ffffff;" class="nav"><font face="Verdana, sans-serif" color="#ffffff" size="-2"><b>Industries</b></font></a></td><td width="1" bgcolor="#959595"><img alt="" height="1" width="1" src="http://www.ibm.com/i/c.gif"></td><td align="center" width="57" bgcolor="#000000" height="21"><a href="http://www.ibm.com/news/" style="color: #ffffff;" class="nav"><font face="Verdana, sans-serif" color="#ffffff" size="-2"><b>News</b></font></a></td><td width="1" bgcolor="#959595"><img alt="" height="1" width="1" src="http://www.ibm.com/i/c.gif"></td><td align="center" width="78" bgcolor="#000000" height="21"><a href="http://www.ibm.com/ibm/" style="color: #ffffff;" class="nav"><font face="Verdana, sans-serif" color="#ffffff" size="-2"><b>About IBM</b></font></a></td></tr></table></td></tr></table></td></tr></table><TABLE border="0" cellpadding="0" cellspacing="0" width="100%"><TR><TD width="150" height="1" bgcolor="#ffffff"><IMG alt="" height="1" width="150" src="http://www.ibm.com/i/c.gif"></TD></TR><TR><TD width="150" height="3" bgcolor="#cc6633"><IMG alt="" height="3" width="150" src="http://www.ibm.com/i/c.gif"></TD></TR><TR><TD width="150" height="1" bgcolor="#333333"><IMG alt="" height="1" width="150" src="http://www.ibm.com/i/c.gif"></TD></TR><TR><TD width="150" height="1" bgcolor="#000000"><IMG alt="" height="1" width="150" src="http://www.ibm.com/i/c.gif"></TD></TR></TABLE><table border="0" cellpadding="0" cellspacing="0" width="100%"><tr><td><font face="Verdana, sans-serif" size="-1"><a href="http://www.ibm.com/">IBM</a> : <a href="http://www.ibm.com/developer/">developerWorks</a> : <a href="http://www.ibm.com/developer/java/">Java</a> : <a href="http://www-105.ibm.com/developerworks/education.nsf/dw/java-onlinecourse-bytitle">Education - online courses</a></font><br x="7"><img src="imagemaster/masthead.jpg" alt="Building a Java chat server"></td><td width="*" valign="bottom" align="right"><a border="0" href="j-chat.zip"><img alt="Download tutorial zip file" border="0" src="../i/icon-zip.gif"></a><a border="0" href="j-chat-ltr.pdf"><img alt="View letter-sized PDF file" border="0" src="../i/icon-pdf-ltr.gif"></a><a border="0" href="j-chat-a4.pdf"><img alt="View A4-sized PDF file" border="0" src="../i/icon-pdf-a4.gif"></a><a href="javascript:void newWindow()" border="0"><img alt="E-mail this tutorial to a friend" border="0" src="../i/icon-email.gif"></a></td></tr><tr><td height="2" colspan="2"><img height="2" width="1" src="http://www.ibm.com/i/c.gif"></td></tr></table><TABLE border="0" cellpadding="0" cellspacing="0" width="100%"><TR><TD width="150" height="1" bgcolor="#000000" colspan="6"><IMG alt="" height="1" width="150" src="http://www.ibm.com/i/c.gif"></TD></TR><TR><TD background="../i/sw-gold.gif"><a border="0" href="index.html" onMouseOver="iOver('topmain'); iOver('bottommain'); self.status=mainblurb; return true;" onMouseOut="iOut('topmain'); iOut('bottommain'); self.status=''; return true;"><img alt="Main menu" border="0" src="../i/main.gif" name="topmain"></a></TD><TD background="../i/sw-gold.gif"><a border="0" onMouseOver="iOver('topsection'); iOver('bottomsection'); self.status=sectionblurb; return true;" onMouseOut="iOut('topsection'); iOut('bottomsection'); self.status=''; return true;" href="index4.html"><img alt="Section menu" border="0" src="../i/section.gif" name="topsection"></a></TD><TD background="../i/sw-gold.gif"><a border="0" onMouseOver="iOver('topfeedback'); iOver('bottomfeedback'); self.status=feedbackblurb; return true;" onMouseOut="iOut('topfeedback'); iOut('bottomfeedback'); self.status=''; return true;" href="j-chat-11-3.html"><img alt="Give feedback on this tutorial" border="0" src="../i/feedback.gif" name="topfeedback"></a></TD><TD width="100%" background="../i/sw-gold.gif"><img src="http://www.ibm.com/i/c.gif"></TD><TD background="../i/sw-gold.gif"><a border="0" onMouseOver="iOver('topprevious'); iOver('bottomprevious'); self.status=previousblurb; return true;" onMouseOut="iOut('topprevious'); iOut('bottomprevious'); self.status=''; return true;" href="j-chat-4-1.html"><img alt="Previous" border="0" src="../i/previous.gif" name="topprevious"></a></TD><TD background="../i/sw-gold.gif"><a border="0" onMouseOver="iOver('topnext'); iOver('bottomnext'); self.status=nextblurb; return true;" onMouseOut="iOut('topnext'); iOut('bottomnext'); self.status=''; return true;" href="j-chat-4-3.html"><img alt="Next" border="0" src="../i/next.gif" name="topnext"></a></TD></TR></TABLE><table bgcolor="ffffff" cellspacing="0" cellpadding="2" border="0" height="400" width="100%"><tr valign="bottom"><a name="navskip"></a><td height="25" colspan="4"><img border="0" height="25" width="562" src="imagemaster/titlebar4.jpg" alt="4. The While-Accept loop (Server side)"></td></tr><tr><td bgcolor="ffffff" width="15">&nbsp;</td><td bgcolor="ffffff" width="12">&nbsp;</td><td valign="top" align="left" bgcolor="ffffff" width="*"><p><br x="7"><table cellspacing="0" cellpadding="0" border="0"><tr><td width="90%"><font size="4" face="Verdana, Arial, Helvetica"><b>Accepting Sockets</b></font></td><td width="200" align="right"><font size="1" face="Verdana, Arial, Helvetica"><nobr>    page 2 of 4</nobr></font></td></tr></table><br x="7"><br x="7"></p><font size="2" face="Verdana, Arial, Helvetica"><p>Remember that your program will potentially be serving many clients
from all over the Internet. And these clients will be connecting to
your server without regard to each other. That is, there's no way to
control the order, or the timing, with which the connections are
arriving. As we'll see later, multithreading is an excellent way
to deal with these connections once they have come in.</p><p>However, we're still trying to deal with the connections as they
arrive.</p><p>The socket metaphor provides a straightforward solution: it
<i>serializes</i> the incoming connections. That is, it makes them
seem as if they are coming in one at a time, and arriving just as you
ask for them.</p><p>Here's what it looks like, in the abstract:</p><pre><code style="font-family: Courier New, Courier, monospace; font-size: 12">
  // start listening on the port
  ServerSocket ss = new ServerSocket( port );
  // loop forever
  while (true) {

    // get a connection
    Socket newSocket = ss.accept();

    // deal with the connection
    // ...
  }
</code></pre><p>The <code style="font-family: Courier New, Courier, monospace; font-size: 12">accept()</code> routine is the key here. When this method of
ServerSocket is called, it returns a new Socket object that represents
a new connection that has come in. After you've dealt with this
connection, you call <code style="font-family: Courier New, Courier, monospace; font-size: 12">accept()</code> and get the next one. This way, no
matter how fast connections are coming, and no matter how many
processors or network interfaces your machine has, you get the
connections one at a time. (And if there aren't any connections
coming in at the moment, then the <code style="font-family: Courier New, Courier, monospace; font-size: 12">accept()</code> routine simply blocks --
doesn't return -- until there are.)</p><br x="7"></font></td></tr></table><TABLE border="0" cellpadding="0" cellspacing="0" width="100%"><TR><TD background="../i/sw-gold.gif"><a border="0" href="index.html" onMouseOver="iOver('topmain'); iOver('bottommain'); self.status=mainblurb; return true;" onMouseOut="iOut('topmain'); iOut('bottommain'); self.status=''; return true;"><img alt="Main menu" border="0" src="../i/main.gif" name="bottommain"></a></TD><TD background="../i/sw-gold.gif"><a border="0" onMouseOver="iOver('topsection'); iOver('bottomsection'); self.status=sectionblurb; return true;" onMouseOut="iOut('topsection'); iOut('bottomsection'); self.status=''; return true;" href="index4.html"><img alt="Section menu" border="0" src="../i/section.gif" name="bottomsection"></a></TD><TD background="../i/sw-gold.gif"><a border="0" onMouseOver="iOver('topfeedback'); iOver('bottomfeedback'); self.status=feedbackblurb; return true;" onMouseOut="iOut('topfeedback'); iOut('bottomfeedback'); self.status=''; return true;" href="j-chat-11-3.html"><img alt="Give feedback on this tutorial" border="0" src="../i/feedback.gif" name="bottomfeedback"></a></TD><TD width="100%" background="../i/sw-gold.gif"><img src="http://www.ibm.com/i/c.gif"></TD><TD background="../i/sw-gold.gif"><a border="0" onMouseOver="iOver('topprevious'); iOver('bottomprevious'); self.status=previousblurb; return true;" onMouseOut="iOut('topprevious'); iOut('bottomprevious'); self.status=''; return true;" href="j-chat-4-1.html"><img alt="Previous" border="0" src="../i/previous.gif" name="bottomprevious"></a></TD><TD background="../i/sw-gold.gif"><a border="0" onMouseOver="iOver('topnext'); iOver('bottomnext'); self.status=nextblurb; return true;" onMouseOut="iOut('topnext'); iOut('bottomnext'); self.status=''; return true;" href="j-chat-4-3.html"><img alt="Next" border="0" src="../i/next.gif" name="bottomnext"></a></TD></TR><TR><TD width="150" height="1" bgcolor="#000000" colspan="6"><IMG alt="" height="1" width="150" src="http://www.ibm.com/i/c.gif"></TD></TR></TABLE><TABLE cellpadding="0" cellspacing="0" border="0"><TR><TD width="182"><TABLE cellpadding="0" cellspacing="0" border="0" width="182"><TR bgcolor="#000000"><TD align="center" width="60" class="mast"><a style="text-decoration: none; color: #ffffff;" class="nav" href="http://www.ibm.com/privacy/"><font face="Arial, Verdana" size="2">Privacy</font></a></TD><TD width="1" bgcolor="#959595"><img alt="" border="0" height="20" width="1" src="http://www.ibm.com/i/c.gif"></TD><TD align="center" width="60" class="mast"><a style="text-decoration: none; color: #ffffff;" class="nav" href="http://www.ibm.com/legal/"><font face="Arial, Verdana" size="2">Legal</font></a></TD><TD width="1" bgcolor="#959595"><img alt="" border="0" height="20" width="1" src="http://www.ibm.com/i/c.gif"></TD><TD align="center" width="60" class="mast"><a style="text-decoration: none; color: #ffffff;" class="nav" href="http://www.ibm.com/contact/"><font face="Arial, Verdana" size="2">Contact</font></a></TD><TD width="1" bgcolor="#959595"><img alt="" border="0" height="21" width="1" src="http://www.ibm.com/i/c.gif"></TD></TR><TR bgcolor="#ffffff"><TD><img alt="" border="0" height="1" width="1" src="http://www.ibm.com/i/c.gif"></TD></TR></TABLE></TD><TD width="100%"><TABLE cellpadding="0" cellspacing="0" border="0" width="100%"><TR height="21" bgcolor="#000000"><TD><img alt="" border="0" height="21" width="1" src="http://www.ibm.com/i/c.gif"></TD></TR><TR bgcolor="#ffffff"><TD><img alt="" border="0" height="1" width="1" src="http://www.ibm.com/i/c.gif"></TD></TR></TABLE></TD></TR></TABLE></body></html>

⌨️ 快捷键说明

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