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

📄 jmfapp-datasource.html

📁 奉献给多媒体java编程者们。JMF2.1.1最新版本的用户指南。JMF是java用于基于实时多媒体的开发工具
💻 HTML
📖 第 1 页 / 共 2 页
字号:
</code><a name="86782"> </a><code>   public String getPassword()
</code><a name="86783"> </a><code>   {
</code><a name="86784"> </a><code>      return password;
</code><a name="86785"> </a><code>   }</code>
</pre>
</font></td>
  </tr>
  <tr>
    <td><font face="Palatino, Times New Roman, Times, serif"><pre>
<a name="86792"> </a><code>   private int readReply() throws IOException
</code><a name="86793"> </a><code>   {
</code><a name="86794"> </a><code>      previousReplyCode = readResponse();
</code><a name="86795"> </a><code>      System.out.println(previousReplyCode);
</code><a name="86796"> </a><code>      switch (previousReplyCode / 100)
</code><a name="86797"> </a><code>      {
</code><a name="86798"> </a><code>         case 1:
</code><a name="86799"> </a><code>            replyPending = true;
</code><a name="86800"> </a><code>            // fall through
</code><a name="86801"> </a><code>         case 2:
</code><a name="86802"> </a><code>         case 3:
</code><a name="86803"> </a><code>            return FTP_SUCCESS;
</code><a name="86804"> </a><code>         case 5:
</code><a name="86805"> </a><code>            if (previousReplyCode == 530)
</code><a name="86806"> </a><code>            {
</code><a name="86807"> </a><code>               if (user == null)
</code><a name="86808"> </a><code>               {
</code><a name="86809"> </a><code>                  throw new IOException("Not logged in");
</code><a name="86810"> </a><code>               }
</code><a name="86811"> </a><code>               return FTP_ERROR;
</code><a name="86812"> </a><code>            }
</code><a name="86813"> </a><code>            if (previousReplyCode == 550)
</code><a name="86814"> </a><code>            {
</code><a name="86815"> </a><code>               throw new FileNotFoundException();
</code><a name="86816"> </a><code>            }
</code><a name="86817"> </a><code>      }
</code><a name="86818"> </a><code>      return FTP_ERROR;
</code><a name="86819"> </a><code>    }
</code><a name="86820"> </a><code>
</code><a name="86821"> </a><code>   /**
</code><a name="86822"> </a><code>    * Pulls the response from the server and returns the code as a
</code><a name="86823"> </a><code>    * number. Returns -1 on failure.
</code><a name="86824"> </a><code>    */
</code><a name="86825"> </a><code>
</code><a name="86826"> </a><code>   private int readResponse() throws IOException
</code><a name="86827"> </a><code>   {
</code><a name="86828"> </a><code>      StringBuffer buff = new StringBuffer(32);
</code><a name="86829"> </a><code>      String responseStr;
</code><a name="86830"> </a><code>      int   c;
</code><a name="86831"> </a><code>      int   continuingCode = -1;
</code><a name="86832"> </a><code>      int   code = 0;
</code><a name="86833"> </a><code>
</code><a name="86834"> </a><code>      response.setSize(0);
</code><a name="86835"> </a><code>      
</code><a name="86836"> </a><code>      while (true)
</code><a name="86837"> </a><code>      {
</code><a name="86838"> </a><code>         while ((c = controlIn.read()) != -1)
</code><a name="86839"> </a><code>         {
</code><a name="86840"> </a><code>            if (c == '\r')
</code><a name="86841"> </a><code>            {
</code><a name="86842"> </a><code>               if ((c = controlIn.read()) != '\n')
</code><a name="86843"> </a><code>               {
</code><a name="86844"> </a><code>                  buff.append('\r');</code>
</pre>
</font></td>
  </tr>
  <tr>
    <td><font face="Palatino, Times New Roman, Times, serif"><pre>
<a name="86860"> </a><code>               }
</code><a name="86861"> </a><code>            }
</code><a name="86862"> </a><code>            buff.append((char)c);
</code><a name="86863"> </a>
<a name="86869"> </a><code>
</code><a name="86870"> </a><code>            if (c == '\n')
</code><a name="86871"> </a><code>            {
</code><a name="86872"> </a><code>                break;
</code><a name="86873"> </a><code>            }
</code><a name="86874"> </a><code>         }
</code><a name="86875"> </a><code>         responseStr = buff.toString();
</code><a name="86876"> </a><code>         buff.setLength(0);
</code><a name="86877"> </a><code>         try
</code><a name="86878"> </a><code>         {
</code><a name="86879"> </a><code>            code = Integer.parseInt(responseStr.substring(0, 3));
</code><a name="86880"> </a><code>         }
</code><a name="86881"> </a><code>         catch (NumberFormatException e)
</code><a name="86882"> </a><code>         {
</code><a name="86883"> </a><code>            code = -1;
</code><a name="86884"> </a><code>         }
</code><a name="86885"> </a><code>         catch (StringIndexOutOfBoundsException e)
</code><a name="86886"> </a><code>         {
</code><a name="86887"> </a><code>            /* this line doesn't contain a response code, so
</code><a name="86888"> </a><code>             * we just completely ignore it 
</code><a name="86889"> </a><code>             */
</code><a name="86890"> </a><code>             continue;
</code><a name="86891"> </a><code>         }
</code><a name="86892"> </a><code>         response.addElement(responseStr);
</code><a name="86893"> </a><code>         if (continuingCode != -1)
</code><a name="86894"> </a><code>         {
</code><a name="86895"> </a><code>            /* we've seen a XXX- sequence */
</code><a name="86896"> </a><code>            if (code != continuingCode ||
</code><a name="86897"> </a><code>               (responseStr.length() &gt;= 4 &amp;&amp; 
</code><a name="86898"> </a><code>               responseStr.charAt(3) == '-'))
</code><a name="86899"> </a><code>            {
</code><a name="86900"> </a><code>                continue;
</code><a name="86901"> </a><code>            }
</code><a name="86902"> </a><code>            else
</code><a name="86903"> </a><code>            {
</code><a name="86904"> </a><code>               /* seen the end of code sequence */
</code><a name="86905"> </a><code>               continuingCode = -1;
</code><a name="86906"> </a><code>               break;
</code><a name="86907"> </a><code>            }
</code><a name="86908"> </a><code>         }
</code><a name="86909"> </a><code>         else if (responseStr.length() &gt;= 4 &amp;&amp;
</code><a name="86910"> </a><code>            responseStr.charAt(3) == '-')
</code><a name="86911"> </a><code>         {
</code><a name="86912"> </a><code>            continuingCode = code;
</code><a name="86913"> </a><code>            continue;
</code><a name="86914"> </a><code>         }
</code><a name="86915"> </a><code>         else
</code><a name="86916"> </a><code>         {</code>
</pre>
</font></td>
  </tr>
  <tr>
    <td><font face="Palatino, Times New Roman, Times, serif"><pre>
<a name="86934"> </a><code>            break;
</code><a name="86935"> </a><code>         }
</code><a name="86936"> </a><code>      }
</code><a name="86937"> </a>
<a name="86943"> </a><code>      previousReplyCode = code;
</code><a name="86944"> </a><code>      return code;
</code><a name="86945"> </a><code>   }
</code><a name="86946"> </a><code>
</code><a name="86947"> </a><code>   private int issueCommand(String cmd) throws IOException
</code><a name="86948"> </a><code>   {
</code><a name="86949"> </a><code>      int reply;
</code><a name="86950"> </a><code>      if (replyPending)
</code><a name="86951"> </a><code>      {
</code><a name="86952"> </a><code>         if (readReply() == FTP_ERROR)
</code><a name="86953"> </a><code>         {
</code><a name="86954"> </a><code>            System.out.print("Error reading pending reply\n");
</code><a name="86955"> </a><code>         }
</code><a name="86956"> </a><code>      }
</code><a name="86957"> </a><code>      replyPending = false;
</code><a name="86958"> </a><code>      do
</code><a name="86959"> </a><code>      {
</code><a name="86960"> </a><code>         System.out.println(cmd);
</code><a name="86961"> </a><code>         controlOut.print(cmd + "\r\n");
</code><a name="86962"> </a><code>         reply = readReply();
</code><a name="86963"> </a><code>      } while (reply == FTP_TRY_AGAIN);
</code><a name="86964"> </a><code>      return reply;
</code><a name="86965"> </a><code>   }
</code><a name="86966"> </a><code>   /**
</code><a name="86967"> </a><code>    * Parses the mediaLocator field into host and file strings
</code><a name="86968"> </a><code>    */
</code><a name="86969"> </a><code>
</code><a name="86970"> </a><code>   protected void parseLocator()
</code><a name="86971"> </a><code>   {
</code><a name="86972"> </a><code>      initCheck();
</code><a name="86973"> </a><code>      String rest = getLocator().getRemainder();
</code><a name="86974"> </a><code>      System.out.println("Begin parsing of: " + rest);
</code><a name="86975"> </a><code>      int p1, p2 = 0;
</code><a name="86976"> </a><code>      p1 = rest.indexOf("//");
</code><a name="86977"> </a><code>      p2 = rest.indexOf("/", p1+2);
</code><a name="86978"> </a><code>      hostString = rest.substring(p1 + 2, p2);
</code><a name="86979"> </a><code>      fileString = rest.substring(p2);
</code><a name="86980"> </a><code>      System.out.println("host: " + hostString + "   file: " 
</code><a name="86981"> </a><code>         + fileString);
</code><a name="86987"> </a><code>   }
</code><a name="86988"> </a><code>}</code>
</pre>
</font></td>
  </tr>
</table>



<br></font>


<h4>
  <a name="82808"> </a><font color="#003366" face="Palatino, Times New Roman, Times, serif">Source Stream</font>
</h4>


<a name="86999"> </a><font  size="1" face="Palatino, Times New Roman, Times, serif">

<table border="1" bordercolorlight="#FFFFFF" bordercolordark="#000000"
       cellpadding="5" cellspacing="0">
  <caption><b><i><font face="Palatino, Times New Roman, Times, serif"><a name="87005"> </a>Example D-2:  </font></i></b></caption>
  <tr>
    <td><font face="Palatino, Times New Roman, Times, serif"><pre>
<a name="87015"> </a><code> package intel.media.protocol.ftp;
</code><a name="87016"> </a><code>
</code><a name="87017"> </a><code> import java.io.*;
</code><a name="87018"> </a><code>import javax.media.protocol.ContentDescriptor;
</code><a name="87019"> </a><code>import javax.media.protocol.PullSourceStream;
</code><a name="87020"> </a><code>import javax.media.protocol.SourceStream;
</code><a name="87021"> </a><code>
</code><a name="87022"> </a><code>public class FTPSourceStream implements PullSourceStream
</code><a name="87023"> </a><code>{
</code><a name="87024"> </a><code>   protected InputStream dataIn;
</code><a name="87025"> </a><code>   protected boolean eofMarker;
</code><a name="87026"> </a><code>   protected ContentDescriptor cd;
</code><a name="87027"> </a><code>
</code><a name="87028"> </a><code>   public FTPSourceStream(InputStream in)
</code><a name="87029"> </a><code>   {
</code><a name="87030"> </a><code>      this.dataIn = in;
</code><a name="87031"> </a><code>      eofMarker = false;
</code><a name="87032"> </a><code>      cd = new ContentDescriptor("unknown");
</code><a name="87033"> </a><code>   }
</code><a name="87034"> </a><code>
</code><a name="87035"> </a><code>   // SourceSteam methods
</code><a name="87036"> </a><code>
</code><a name="87037"> </a><code>   public ContentDescriptor getContentDescriptor()
</code><a name="87038"> </a><code>   {
</code><a name="87039"> </a><code>      return cd;
</code><a name="87040"> </a><code>   }
</code><a name="87041"> </a><code>
</code><a name="87042"> </a><code>   public void close() throws IOException
</code><a name="87043"> </a><code>   {
</code><a name="87044"> </a><code>      dataIn.close();
</code><a name="87045"> </a><code>   }
</code><a name="87046"> </a><code>
</code><a name="87047"> </a><code>   public boolean endOfStream()
</code><a name="87048"> </a><code>   {
</code><a name="87049"> </a><code>      return eofMarker;
</code><a name="87050"> </a><code>   }
</code><a name="87051"> </a><code>
</code><a name="87052"> </a><code>   // PullSourceStream methods
</code><a name="87053"> </a><code>
</code><a name="87054"> </a><code>   public int available() throws IOException
</code><a name="87105"> </a><code>   {
</code><a name="87106"> </a><code>      return dataIn.available();
</code><a name="87107"> </a><code>   }</code>
</pre>
</font></td>
  </tr>
  <tr>
    <td><font face="Palatino, Times New Roman, Times, serif"><pre>
<a name="87065"> </a><code>   public int read(byte[] buffer, int offset, int length) throws 
IOException
</code><a name="87066"> </a><code>   {
</code><a name="87067"> </a><code>      int n = dataIn.read(buffer, offset, length);
</code><a name="87068"> </a><code>      if (n == -1)
</code><a name="87069"> </a><code>      {
</code><a name="87070"> </a><code>         eofMarker = true;
</code><a name="87071"> </a><code>      }
</code><a name="87072"> </a><code>      return n;
</code><a name="87073"> </a><code>   }
</code><a name="87074"> </a><code>
</code><a name="87075"> </a><code>   public boolean willReadBlock() throws IOException
</code><a name="87076"> </a><code>   {
</code><a name="87077"> </a><code>      if(eofMarker) 
</code><a name="87078"> </a><code>      {
</code><a name="87079"> </a><code>         return true;
</code><a name="87080"> </a><code>      } 
</code><a name="87081"> </a><code>      else 
</code><a name="87082"> </a><code>      {
</code><a name="87083"> </a><code>         return 	 dataIn.available() == 0;
</code><a name="87084"> </a><code>      }
</code><a name="87085"> </a><code>   }
</code><a name="87086"> </a><code>
</code><a name="87087"> </a><code>   public long getContentLength()
</code><a name="87088"> </a><code>   {
</code><a name="87089"> </a><code>      return SourceStream.LENGTH_UNKNOWN;
</code><a name="87090"> </a><code>   }
</code><a name="87091"> </a><code>}
</code></pre>
</font></td>
  </tr>
</table>



<br></font>


<p>
  <a name="82813"> </a><font face="Palatino, Times New Roman, Times, serif"><code></code></font>
</p>
</blockquote>
<br clear="all">
<hr>
<a href="JMFTOC.html">CONTENTS</a> | 
<a href="JMFApp-Demux.html">PREV </a> |
<a href="JMFApp-Controller.html">NEXT</a> |
<a href="JMFIX.html">INDEX</a></td>
<br>
<hr>
<em>
<a href="copyright.html">Copyright</a> &copy;
1998-1999 Sun Microsystems, Inc. All Rights Reserved.
</em>
</body>
</html>

⌨️ 快捷键说明

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