亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频

? 歡迎來到蟲蟲下載站! | ?? 資源下載 ?? 資源專輯 ?? 關于我們
? 蟲蟲下載站

?? java17.htm

?? E-books about Java Programing in Spanish
?? HTM
字號:
<HTML>

<HEAD>

<TITLE>Java desde Cero</TITLE>



<META NAME="GENERATOR" CONTENT="Internet Assistant for Microsoft Word 2.0z">

</HEAD>

<BODY background=/iconos/1.gif  TEXT=000000 LINK=FF0000 VLINK=A62A2A>
<H1>Paseando por la Red<BR>

</H1>

<P>

Es muy sencillo acceder a archivos en la red utilizando Java.

El paquete java.net dispone de varias clases e interfases a tal

efecto.

<P>

En primer lugar, la clase URL nos permite definir un recurso en

la red de varias maneras, por ejemplo:

<PRE>

<FONT SIZE=2>URL url1 = new URL (&quot;http://www.rockar.com.ar/index.html&quot;);

URL url2 = new URL (&quot;http&quot;, &quot;www.rockar.com.ar&quot;, &quot;sbits.htm&quot;);

<BR>

</FONT>

</PRE>

<P>

Por otra parte, podemos establecer una conexi&oacute;n a un URL

dado mediante <FONT FACE="Arial">openConnection</FONT>:

<PRE>

<FONT SIZE=2>URLConnection conexion = url.openConnection();<BR>

</FONT>

</PRE>

<P>

Una vez lograda la conexi&oacute;n, podemos leer y escribir datos

utilizando <I>streams</I> (<I>corrientes</I> de datos),  como

en el caso de manejo de archivos comunes (ver cap&iacute;tulo

X). Un <FONT FACE="Arial">DataInputStream</FONT> nos permite leer

datos que llegan a trav&eacute;s de la red, y un <FONT FACE="Arial">DataOutputStream</FONT>

nos permite enviar datos al host.

<P>

Por ejemplo:

<PRE>

<FONT SIZE=2>DataInputStream datos = new DataInputStream( corrienteEntrada  );

<BR>

</FONT>

</PRE>

<P>

En nuestro caso, la corriente de entrada de datos proviene de

la conexi&oacute;n al URL. El m&eacute;todo <FONT FACE="Arial">getInputStream()</FONT>

del objeto <FONT FACE="Arial">URLConnection</FONT> nos provee

tal corriente:

<PRE>

<FONT SIZE=2>DataInputStream datos = new DataInputStream(conex.getInputStream())

<BR>

</FONT>

</PRE>

<P>

De este modo podemos escribir un peque&ntilde;o programa para,

por ejemplo, leer una p&aacute;gina HTML desde una direcci&oacute;n

arbitraria de internet. El programa, luego de compilarse mediante

<I>javac Ejemplo25.java</I>, se ejecuta con <I>java Ejemplo25

&lt;url&gt;;</I> por ejemplo: <FONT FACE="Arial">java Ejemplo25

http://www.rockar.com.ar/index.html</FONT>.<BR>

<PRE>

<FONT SIZE=2>import java.io.*;

import java.net.*;



public class Ejemplo25 {



	public static void main(String argv[]) {

	   String s;

	   try {

		URL url = new URL (argv[0]);

		URLConnection conex = url.openConnection();

		System.out.println(&quot;Cargando &quot;+argv[0]);

		DataInputStream datos = new DataInputStream(conex.getInputStream());

		do {

			s = datos.readLine();

			if (s != null) System.out.println(s);

		} while (s != null);

	   }

	   catch (ArrayIndexOutOfBoundsException e) {

		System.out.println(&quot;Sintaxis: java Ejemplo25 &lt;url&gt;&quot;);

	   }

	   catch (UnknownHostException e) {

		System.out.println(&quot;El host no existe o no responde&quot;);

	   }

	   catch (Exception e) {

		e.printStackTrace();

	   }

	}

}<BR>

</FONT>

</PRE>

<P>

Este programa muestra el HTML como texto en la pantalla, pero

podr&iacute;amos grabarlo a un archivo para guardarlo. Inclusive,

podr&iacute;amos procesarlo a medida que lo recibimos, identificar

los tags &lt;A HREF=url&gt;, guardarlos en un vector, y seguidamente

conectarnos y bajar los links que figuran en la p&aacute;gina

original hasta bajar un site completo.

<P>

Noten que esto no s&oacute;lo sirve para establecer conexiones

a p&aacute;ginas HTML. En realidad, un URL puede referirse tambi&eacute;n

a otros protocolos, como gopher, ftp, etc&eacute;tera; si bien

seg&uacute;n la implementaci&oacute;n de Java puede haber problemas

para conectarse a algunos tipos de URL.

<P>

Para ver los tipos de URL posibles les recomiendo leer la p&aacute;gina:

<PRE>

<FONT SIZE=2>http://www.ncsa.uiuc.edu/demoweb/url-primer.html

<BR>

<BR>

</FONT>

</PRE>

<H2>Los Sockets</H2>

<P>

Los <I>sockets</I> (z&oacute;calos, referido a los enchufes de

conexi&oacute;n de cables) son mecanismos de comunicaci&oacute;n

entre programas a trav&eacute;s de una red TCP/IP. De hecho, al

establecer una conexi&oacute;n via Internet estamos utilizando

sockets: los sockets realizan la interfase entre la aplicaci&oacute;n

y el protocolo TCP/IP.

<P>

Dichos mecanismos pueden tener lugar dentro de la misma m&aacute;quina

o a trav&eacute;s de una red. Se usan en forma cliente-servidor:

cuando un cliente y un servidor establecen una conexi&oacute;n,

lo hacen a trav&eacute;s de un socket. Java proporciona para esto

las clases <FONT FACE="Arial">ServerSocket</FONT> y <FONT FACE="Arial">Socket</FONT>.

<P>

Los sockets tienen asociado un <I>port</I> (puerto). En general,

las conexiones via internet pueden establecer un puerto particular

(por ejemplo, en http://www.rockar.com.ar<B>:80</B>/index.html

el puerto es el 80). Esto casi nunca se especifica porque ya hay

definidos puertos por defecto para distintos protocolos: 20 para

ftp-data, 21 para ftp, 79 para finger, etc. Algunos servers pueden

definir otros puertos, e inclusive pueden utilizarse puertos disponibles

para establecer conexiones especiales.

<P>

Justamente, una de las formas de crear un objeto de la clase URL

permite especificar tambi&eacute;n el puerto:

<PRE>

<FONT SIZE=2>URL url3 = new URL (&quot;http&quot;, &quot;www.rockar.com.ar&quot;, 80,&quot;sbits.htm&quot;);

<BR>

</FONT>

</PRE>

<P>

Para establecer una conexi&oacute;n a trav&eacute;s de un socket,

tenemos que programar por un lado el servidor y por otro los clientes.

<P>

En el servidor, creamos un objeto de la clase <FONT FACE="Arial">ServerSocket</FONT>

y luego esperamos alg&uacute;n cliente (de clase <FONT FACE="Arial">Socket</FONT>)

mediante el m&eacute;todo <FONT FACE="Arial">accept()</FONT>:

<BR>

<PRE>

<FONT SIZE=2>ServerSocket conexion = new ServerSocket(5000);	// 5000 es el puerto en este caso

Socket cliente = conexion.accept();			// espero al cliente<BR>

</FONT>

</PRE>

<P>

Desde el punto de vista del cliente, necesitamos un Socket al

que le indiquemos la direcci&oacute;n del servidor y el n&uacute;mero

de puerto a usar:<BR>

<PRE>

<FONT SIZE=2>Socket conexion = new Socket ( direccion, 5000 );

<BR>

</FONT>

</PRE>

<P>

Una vez establecida la conexi&oacute;n, podemos intercambiar datos

usando streams como en el ejemplo anterior. Como la clase <FONT FACE="Arial">URLConnection</FONT>,

la clase <FONT FACE="Arial">Socket</FONT> dispone de m&eacute;todos

<FONT FACE="Arial">getInputStream</FONT> y <FONT FACE="Arial">getOutputStream</FONT>

que nos dan respectivamente un <FONT FACE="Arial">InputStream</FONT>

y un <FONT FACE="Arial">OutputStream</FONT> a trav&eacute;s de

los cuales transferir los datos.<BR>

<H3>Un servidor atento</H3>

<P>

Vamos a crear un servidor <FONT FACE="Arial">Ejemplo26a.java</FONT>

(que podemos correr en una ventana) que atender&aacute; a un cliente

de la misma m&aacute;quina (lo vamos a correr en otra ventana).

Para hacerlo simple, el servidor s&oacute;lo le enviar&aacute;

un mensaje al cliente y &eacute;ste terminar&aacute; la conexi&oacute;n.

El servidor quedar&aacute; entonces disponible para otro cliente.

<P>

Es importante notar que, para que el socket funcione, los servicios

TCP/IP deben estar activos (aunque ambos programas corran en la

misma m&aacute;quina). Los usuarios de Windows aseg&uacute;rense

que haya una conexi&oacute;n TCP/IP activa, ya sea a una red local

o a Internet.

<P>

El servidor correr&aacute; &quot;para siempre&quot;, as&iacute;

que para detenerlo presionen control-C.<BR>

<PRE>

<FONT SIZE=2>// servidor

import java.io.*;

import java.net.*;



public class Ejemplo26a {



	public static void main(String argv[]) {

	  ServerSocket	servidor;

	  Socket	cliente;

	  int		numCliente = 0;

	  try {

		servidor = new ServerSocket(5000);

		do {

		  numCliente++;

		  cliente = servidor.accept();

		  System.out.println(&quot;Llega el cliente &quot;+numCliente);

		  PrintStream ps = new PrintStream(cliente.getOutputStream());

		  ps.println(&quot;Usted es mi cliente &quot;+numCliente);

		  cliente.close();

		} while (true);

	  }	

	  catch (Exception e) {

		e.printStackTrace();

	  }

	}

}<BR>

</FONT>

</PRE>

<P>

Utilizamos un <FONT FACE="Arial">PrintStream</FONT> para enviar

los datos al cliente, ya que es sencillo de utilizar para mandar

<FONT FACE="Arial">String</FONT>s. El m&eacute;todo <FONT FACE="Arial">PrintStream.println</FONT>

maneja los datos como <FONT FACE="Arial">System.out.println</FONT>,

simplemente hay que indicarle el stream a trav&eacute;s del cual

mandarlos al crearlo (en este caso, el <FONT FACE="Arial">OutputStream</FONT>

del cliente, que obtenemos con <FONT FACE="Arial">cliente.getOutputStream()</FONT>).

<BR>

<H3>El cliente satisfecho</H3>

<P>

Ahora vamos a crear la clase cliente, <FONT FACE="Arial">Ejemplo26b.java</FONT>.

El cliente simplemente establece la conexi&oacute;n, lee a trav&eacute;s

de un <FONT FACE="Arial">DataInputStream</FONT> (mediante el m&eacute;todo

<FONT FACE="Arial">readLine()</FONT>) lo que el servidor le manda,

lo muestra y corta.<BR>

<PRE>

<FONT SIZE=2>// cliente:

import java.io.*;

import java.net.*;



public class Ejemplo26b {



	public static void main(String argv[]) {

	  InetAddress	direccion;

	  Socket	servidor;

	  int		numCliente = 0;

	  try {

		direccion = InetAddress.getLocalHost();	 // direccion local

		servidor = new Socket(direccion, 5000);

		DataInputStream datos =

			new DataInputStream(servidor.getInputStream());

		System.out.println( datos.readLine() );

		servidor.close();

	  }	

	  catch (Exception e) {

		e.printStackTrace();

	  }

	}

}<BR>

<BR>

</FONT>

</PRE>

<P>

Para probar esto, aseg&uacute;rense que los servicios TCP/IP est&eacute;n

activos, corran <FONT FACE="Arial">java Ejemplo26a</FONT> en una

ventana y corran varias veces <FONT FACE="Arial">java Ejemplo26b</FONT>

en otra. Las salidas ser&aacute;n m&aacute;s o menos as&iacute;:

<BR>

<P>

<I><B>Ventana servidor:</B></I>

<PRE>

<FONT SIZE=2>C:\java\curso&gt;java Ejemplo26a

Llega el cliente 1

Llega el cliente 2

Llega el cliente 3

	(----- cortar con control-C -----)<BR>

</FONT>

</PRE>

<P>

<I><B>Ventana cliente:</B></I>

<PRE>

<FONT SIZE=2>C:\java\curso&gt;java Ejemplo26b

Usted es mi cliente 1



C:\java\curso&gt;java Ejemplo26b

Usted es mi cliente 2



C:\java\curso&gt;java Ejemplo26b

Usted es mi cliente 3



	(----- aqu&iacute; cerramos el servidor -----)



C:\java\curso&gt;java Ejemplo26b

java.net.SocketException: connect

        at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:223)

        at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:128)

        at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:115)

        at java.net.Socket.&lt;init&gt;(Socket.java:125)

        at java.net.Socket.&lt;init&gt;(Socket.java:101)

        at Ejemplo26b.main(Ejemplo26b.java:12)

<BR>

</FONT>

</PRE>

<P>

Esto es todo por ahora. El ejemplo fue lo m&aacute;s sencillo

posible, pero mediante el mismo m&eacute;todo el servidor y los

clientes pueden intercambiar datos escribiendo en ambas direcciones.

Inclusive, el servidor puede correr en una m&aacute;quina y los

clientes en otras; adem&aacute;s, si bien en este caso utilizamos

aplicaciones standalone, se pueden utilizar applets.

<P>

Por ejemplo, una aplicaci&oacute;n servidora puede correr constantemente

en un server de Internet (por ejemplo, para buscar datos en una

base de datos) y diferentes clientes en distintas m&aacute;quinas,

posioblemente applets Java, pueden conectarse a ella y consultarla.

<BR>

<BR>

<BR>

<P>

Jorge Bourdette

<P>

<A HREF="mailto:jpb@amarillas.com" >jpb@amarillas.com</A><BR>

</BODY>

</HTML>

?? 快捷鍵說明

復制代碼 Ctrl + C
搜索代碼 Ctrl + F
全屏模式 F11
切換主題 Ctrl + Shift + D
顯示快捷鍵 ?
增大字號 Ctrl + =
減小字號 Ctrl + -
亚洲欧美第一页_禁久久精品乱码_粉嫩av一区二区三区免费野_久草精品视频
亚洲五码中文字幕| 一区二区三区高清| 国产在线视频不卡二| 精品久久久久久最新网址| 麻豆精品国产91久久久久久| 精品乱码亚洲一区二区不卡| 国产做a爰片久久毛片| 久久精品亚洲麻豆av一区二区| 成人综合激情网| 综合分类小说区另类春色亚洲小说欧美 | 91精品国产91热久久久做人人| 亚洲超丰满肉感bbw| 日韩无一区二区| 国产盗摄一区二区| 日韩美女视频一区二区 | 亚洲3atv精品一区二区三区| 91精品国模一区二区三区| 国产一区二区视频在线| 中文字幕av资源一区| 日本韩国欧美在线| 日本中文在线一区| 国产亚洲精品超碰| 色婷婷亚洲综合| 国内久久婷婷综合| 亚洲日本青草视频在线怡红院| 欧美精品在欧美一区二区少妇| 国产毛片精品视频| 亚洲影院免费观看| 久久精品水蜜桃av综合天堂| 91黄色免费网站| 国产一区二区三区黄视频| 亚洲女同ⅹxx女同tv| 日韩免费看的电影| 91丨九色丨尤物| 激情综合网av| 亚洲香蕉伊在人在线观| 国产亚洲欧美日韩在线一区| 欧洲一区二区三区在线| 国产精品一卡二| 日韩黄色片在线观看| 亚洲一区二区三区美女| 26uuu久久综合| 欧美日韩高清在线播放| 成人美女在线视频| 久久av中文字幕片| 亚洲一二三四在线| 国产精品久久久久久久久久久免费看| 欧美剧在线免费观看网站 | 亚洲一区国产视频| 亚洲第一精品在线| 国产精品久久久久久户外露出| 日韩午夜av电影| 欧美乱熟臀69xxxxxx| 99精品视频在线观看| 韩国成人精品a∨在线观看| 亚洲高清久久久| 自拍偷拍欧美激情| 国产性天天综合网| 日韩精品一区二区三区三区免费| 欧美性猛片xxxx免费看久爱| 成人av网站免费| 国产精品综合一区二区| 美女在线视频一区| 日韩高清一区在线| 亚洲综合久久av| 亚洲特黄一级片| 欧美激情一区二区三区蜜桃视频 | 亚洲国产成人一区二区三区| 久久综合九色综合97_久久久 | 欧美美女喷水视频| 欧美在线播放高清精品| 欧美在线色视频| 在线观看日韩电影| 色视频成人在线观看免| 91女人视频在线观看| 91亚洲精品久久久蜜桃| 99精品国产一区二区三区不卡| 成人久久18免费网站麻豆 | 日韩一本二本av| 在线不卡免费欧美| 欧美一区二区三区公司| 日韩三级免费观看| 精品久久免费看| 久久精品视频免费观看| 国产精品三级电影| 中文字幕在线观看一区| 亚洲精品videosex极品| 一区二区三区精品在线观看| 亚洲在线一区二区三区| 亚洲一级二级三级在线免费观看| 丝袜美腿亚洲综合| 乱中年女人伦av一区二区| 国内精品伊人久久久久影院对白| 国产一区二区精品久久91| 成人国产在线观看| 色婷婷综合久久久中文字幕| 欧美日韩三级在线| 日韩欧美中文一区| 久久久久久久综合日本| 日本一区二区在线不卡| 亚洲人精品午夜| 视频一区二区欧美| 国产一区二区三区四区在线观看| av高清久久久| 91精品久久久久久久99蜜桃 | 麻豆精品在线看| 国产成人日日夜夜| 北岛玲一区二区三区四区| 欧美日韩一区二区三区四区五区 | 精品久久久久久久久久久久久久久久久 | 日韩免费看网站| 中文字幕一区三区| 视频在线在亚洲| 国产91精品久久久久久久网曝门| 色婷婷久久一区二区三区麻豆| 777午夜精品免费视频| 国产午夜精品一区二区三区嫩草 | 日韩av在线播放中文字幕| 精品一区二区三区欧美| 99精品热视频| 亚洲图片另类小说| 欧美日韩和欧美的一区二区| 免费人成黄页网站在线一区二区| 国产一区二区三区av电影| 一本久久综合亚洲鲁鲁五月天 | 欧美日韩国产高清一区二区| 久久只精品国产| 亚洲靠逼com| 久久av资源网| 色8久久人人97超碰香蕉987| 日韩西西人体444www| 亚洲人吸女人奶水| 国产一区二区免费看| 欧美喷水一区二区| 国产精品沙发午睡系列990531| 青青草原综合久久大伊人精品优势 | 亚洲图片你懂的| 国产麻豆成人传媒免费观看| 欧美老女人在线| 欧美国产一区视频在线观看| 一级日本不卡的影视| 欧美午夜在线一二页| 亚洲国产一区二区视频| 美女视频网站久久| 在线观看不卡一区| 国产欧美日韩综合| 卡一卡二国产精品| 欧美日韩精品系列| 亚洲人成网站影音先锋播放| 在线观看91视频| 欧美国产日韩亚洲一区| 韩国成人福利片在线播放| 欧美高清hd18日本| 亚洲午夜精品一区二区三区他趣| 99久久精品免费看| 国产日韩欧美激情| 国产一区二区三区久久久| 精品福利二区三区| 久久丁香综合五月国产三级网站| 在线成人免费观看| 五月婷婷综合网| 欧美美女网站色| 日韩精品一二三| 欧美日韩一级二级| 亚洲成人av电影在线| 欧美艳星brazzers| 亚洲一区二区四区蜜桃| 色激情天天射综合网| 一区二区三区四区蜜桃| 色综合视频在线观看| 一区二区三区蜜桃网| 欧美色图一区二区三区| 午夜一区二区三区视频| 欧美精品一级二级三级| 蜜桃久久久久久久| 精品剧情v国产在线观看在线| 国产一区视频在线看| 中文字幕欧美激情一区| 91日韩在线专区| 亚洲一二三区不卡| 制服.丝袜.亚洲.另类.中文| 久久精品国内一区二区三区| 久久久综合激的五月天| 国产91高潮流白浆在线麻豆| 国产精品私人自拍| 99久久精品久久久久久清纯| 亚洲永久免费视频| 日韩一区二区免费在线观看| 国产在线精品免费av| 欧美国产精品一区二区三区| 91麻豆高清视频| 视频一区二区三区在线| 久久这里只精品最新地址| 成人一区在线观看| 一区二区三区不卡在线观看| 日韩一区二区不卡| av不卡一区二区三区| 婷婷一区二区三区| 国产色产综合产在线视频| 91久久精品一区二区|