📄 tcpmessenger.html
字号:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><!--NewPage--><HTML><HEAD><TITLE>TcpMessenger (Project JXTA J2SE)</TITLE><META NAME="keywords" CONTENT="net.jxta.impl.endpoint.tcp.TcpMessenger class"><LINK REL ="stylesheet" TYPE="text/css" HREF="../../../../../stylesheet.css" TITLE="Style"><SCRIPT type="text/javascript">function windowTitle(){ parent.document.title="TcpMessenger (Project JXTA J2SE)";}</SCRIPT></HEAD><BODY BGCOLOR="white" onload="windowTitle();"><!-- ========= START OF TOP NAVBAR ======= --><A NAME="navbar_top"><!-- --></A><A HREF="#skip-navbar_top" title="Skip navigation links"></A><TABLE BORDER="0" WIDTH="100%" CELLPADDING="1" CELLSPACING="0" SUMMARY=""><TR><TD COLSPAN=3 BGCOLOR="#EEEEFF" CLASS="NavBarCell1"><A NAME="navbar_top_firstrow"><!-- --></A><TABLE BORDER="0" CELLPADDING="0" CELLSPACING="3" SUMMARY=""> <TR ALIGN="center" VALIGN="top"> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../overview-summary.html"><FONT CLASS="NavBarFont1"><B>Overview</B></FONT></A> </TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-summary.html"><FONT CLASS="NavBarFont1"><B>Package</B></FONT></A> </TD> <TD BGCOLOR="#FFFFFF" CLASS="NavBarCell1Rev"> <FONT CLASS="NavBarFont1Rev"><B>Class</B></FONT> </TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="class-use/TcpMessenger.html"><FONT CLASS="NavBarFont1"><B>Use</B></FONT></A> </TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="package-tree.html"><FONT CLASS="NavBarFont1"><B>Tree</B></FONT></A> </TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../deprecated-list.html"><FONT CLASS="NavBarFont1"><B>Deprecated</B></FONT></A> </TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../index-all.html"><FONT CLASS="NavBarFont1"><B>Index</B></FONT></A> </TD> <TD BGCOLOR="#EEEEFF" CLASS="NavBarCell1"> <A HREF="../../../../../help-doc.html"><FONT CLASS="NavBarFont1"><B>Help</B></FONT></A> </TD> </TR></TABLE></TD><TD ALIGN="right" VALIGN="top" ROWSPAN=3><EM><a href='http://www.jxta.org' target='_blank'>Project JXTA</a></EM></TD></TR><TR><TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2"> <A HREF="../../../../../net/jxta/impl/endpoint/tcp/TcpConnection.html" title="class in net.jxta.impl.endpoint.tcp"><B>PREV CLASS</B></A> <A HREF="../../../../../net/jxta/impl/endpoint/tcp/TcpTransport.html" title="class in net.jxta.impl.endpoint.tcp"><B>NEXT CLASS</B></A></FONT></TD><TD BGCOLOR="white" CLASS="NavBarCell2"><FONT SIZE="-2"> <A HREF="../../../../../index.html" target="_top"><B>FRAMES</B></A> <A HREF="TcpMessenger.html" target="_top"><B>NO FRAMES</B></A> <SCRIPT type="text/javascript"> <!-- if(window==top) { document.writeln('<A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A>'); } //--></SCRIPT><NOSCRIPT> <A HREF="../../../../../allclasses-noframe.html"><B>All Classes</B></A></NOSCRIPT></FONT></TD></TR><TR><TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2"> SUMMARY: NESTED | <A HREF="#field_summary">FIELD</A> | <A HREF="#constructor_summary">CONSTR</A> | <A HREF="#method_summary">METHOD</A></FONT></TD><TD VALIGN="top" CLASS="NavBarCell3"><FONT SIZE="-2">DETAIL: <A HREF="#field_detail">FIELD</A> | <A HREF="#constructor_detail">CONSTR</A> | <A HREF="#method_detail">METHOD</A></FONT></TD></TR></TABLE><A NAME="skip-navbar_top"></A><!-- ========= END OF TOP NAVBAR ========= --><HR><!-- ======== START OF CLASS DATA ======== --><H2><FONT SIZE="-1">net.jxta.impl.endpoint.tcp</FONT><BR>Class TcpMessenger</H2><PRE>java.lang.Object <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by"><A HREF="../../../../../net/jxta/impl/endpoint/BasicMessenger.html" title="class in net.jxta.impl.endpoint">net.jxta.impl.endpoint.BasicMessenger</A> <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by"><A HREF="../../../../../net/jxta/impl/endpoint/BlockingMessenger.html" title="class in net.jxta.impl.endpoint">net.jxta.impl.endpoint.BlockingMessenger</A> <IMG SRC="../../../../../resources/inherit.gif" ALT="extended by"><B>net.jxta.impl.endpoint.tcp.TcpMessenger</B></PRE><DL><DT><B>All Implemented Interfaces:</B> <DD><A HREF="../../../../../net/jxta/endpoint/EndpointMessenger.html" title="interface in net.jxta.endpoint">EndpointMessenger</A>, <A HREF="../../../../../net/jxta/endpoint/Messenger.html" title="interface in net.jxta.endpoint">Messenger</A></DD></DL><HR><DL><DT> class <B>TcpMessenger</B><DT>extends <A HREF="../../../../../net/jxta/impl/endpoint/BlockingMessenger.html" title="class in net.jxta.impl.endpoint">BlockingMessenger</A></DL><P>Implements a messenger which sends messages via raw TCP sockets. <p/>FIXME jice@jxta.org 20021007: Although in theory not too clean, we could merge connection and messenger. there is a one-to-one mapping between them except that for incoming connections we sometimes throw the messenger away. Merging them would add only a message element and an endpoint address to the connection object and would simplify close() isclosed() and GC's life quite a bit. (Look Ma, no synch ! All synchronized() have been removed. With the help of a volatile reference to the TcpConnection, this is no longer necessary this optimizes at least one critical function: isClosed().<P><P><HR><P><!-- ======== NESTED CLASS SUMMARY ======== --><!-- =========== FIELD SUMMARY =========== --><A NAME="field_summary"><!-- --></A><TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY=""><TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor"><TD COLSPAN=2><FONT SIZE="+2"><B>Field Summary</B></FONT></TD></TR><TR BGCOLOR="white" CLASS="TableRowColor"><TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"><CODE>(package private) <A HREF="../../../../../net/jxta/impl/endpoint/tcp/TcpConnection.html" title="class in net.jxta.impl.endpoint.tcp">TcpConnection</A></CODE></FONT></TD><TD><CODE><B><A HREF="../../../../../net/jxta/impl/endpoint/tcp/TcpMessenger.html#conn">conn</A></B></CODE><BR> The connection</TD></TR><TR BGCOLOR="white" CLASS="TableRowColor"><TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"><CODE>(package private) boolean</CODE></FONT></TD><TD><CODE><B><A HREF="../../../../../net/jxta/impl/endpoint/tcp/TcpMessenger.html#incoming">incoming</A></B></CODE><BR> If this is an incoming connection we must not close it when this messenger disapears. </TD></TR></TABLE> <A NAME="fields_inherited_from_class_net.jxta.impl.endpoint.BasicMessenger"><!-- --></A><TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY=""><TR BGCOLOR="#EEEEFF" CLASS="TableSubHeadingColor"><TD><B>Fields inherited from class net.jxta.impl.endpoint.<A HREF="../../../../../net/jxta/impl/endpoint/BasicMessenger.html" title="class in net.jxta.impl.endpoint">BasicMessenger</A></B></TD></TR><TR BGCOLOR="white" CLASS="TableRowColor"><TD><CODE><A HREF="../../../../../net/jxta/impl/endpoint/BasicMessenger.html#closed">closed</A>, <A HREF="../../../../../net/jxta/impl/endpoint/BasicMessenger.html#dstAddress">dstAddress</A>, <A HREF="../../../../../net/jxta/impl/endpoint/BasicMessenger.html#propertyChangeSupport">propertyChangeSupport</A></CODE></TD></TR></TABLE> <!-- ======== CONSTRUCTOR SUMMARY ======== --><A NAME="constructor_summary"><!-- --></A><TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY=""><TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor"><TD COLSPAN=2><FONT SIZE="+2"><B>Constructor Summary</B></FONT></TD></TR><TR BGCOLOR="white" CLASS="TableRowColor"><TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"><CODE>(package private)</CODE></FONT></TD><TD><CODE><B><A HREF="../../../../../net/jxta/impl/endpoint/tcp/TcpMessenger.html#TcpMessenger(net.jxta.endpoint.EndpointAddress, net.jxta.impl.endpoint.tcp.TcpConnection, net.jxta.impl.endpoint.tcp.TcpTransport)">TcpMessenger</A></B>(<A HREF="../../../../../net/jxta/endpoint/EndpointAddress.html" title="class in net.jxta.endpoint">EndpointAddress</A> destaddr, <A HREF="../../../../../net/jxta/impl/endpoint/tcp/TcpConnection.html" title="class in net.jxta.impl.endpoint.tcp">TcpConnection</A> conn, <A HREF="../../../../../net/jxta/impl/endpoint/tcp/TcpTransport.html" title="class in net.jxta.impl.endpoint.tcp">TcpTransport</A> p)</CODE><BR> Create a new TcpNonBlockingMessenger for the specified address.</TD></TR><TR BGCOLOR="white" CLASS="TableRowColor"><TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"><CODE>(package private)</CODE></FONT></TD><TD><CODE><B><A HREF="../../../../../net/jxta/impl/endpoint/tcp/TcpMessenger.html#TcpMessenger(net.jxta.endpoint.EndpointAddress, net.jxta.impl.endpoint.tcp.TcpTransport)">TcpMessenger</A></B>(<A HREF="../../../../../net/jxta/endpoint/EndpointAddress.html" title="class in net.jxta.endpoint">EndpointAddress</A> destaddr, <A HREF="../../../../../net/jxta/impl/endpoint/tcp/TcpTransport.html" title="class in net.jxta.impl.endpoint.tcp">TcpTransport</A> p)</CODE><BR> Create a new TcpNonBlockingMessenger for the specified address.</TD></TR></TABLE> <!-- ========== METHOD SUMMARY =========== --><A NAME="method_summary"><!-- --></A><TABLE BORDER="1" WIDTH="100%" CELLPADDING="3" CELLSPACING="0" SUMMARY=""><TR BGCOLOR="#CCCCFF" CLASS="TableHeadingColor"><TD COLSPAN=2><FONT SIZE="+2"><B>Method Summary</B></FONT></TD></TR><TR BGCOLOR="white" CLASS="TableRowColor"><TD ALIGN="right" VALIGN="top" WIDTH="1%"><FONT SIZE="-1"><CODE> void</CODE></FONT></TD><TD><CODE><B><A HREF="../../../../../net/jxta/impl/endpoint/tcp/TcpMessenger.html#close()">close</A></B>()</CODE><BR> Close this messenger after processing any pending messages. Messengers which manage shared resources internally may ignore this operation.
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -