P2P: Skirtumas tarp puslapio versijų

Ištrintas turinys Pridėtas turinys
IW-Bot-as (aptarimas | indėlis)
S robotas Pridedama: eo, gl
Eilutė 51:
=="Sveikas, pasauli!" pavyzdys==
 
Žemiau pateikta labai paprasta [Java] programa įgalina bet kurį Interneto jungtį turintį kompiuterį teikti informaciją kitiems kompiuteriams be jokių tarpinių grandžių. Toks "anarchistinis serveris" pasiekiamas bet kuria naršykle, tačiau (priklausomai nuo tinklo nuostatų) naujai įjungiant kompiuterį jo adresas gali ir keistis.
 
import java.io.*;
import java.net.*;
public class Pavyzdys
{
public static void main(String[] args)
{
String musu_adresas = null;
final int portas = 1200; // Ši konstanta nurodo, kurio porto mūsų serveris
/**
// klausys. Jei šis portas užimtas, jį pakeiskite.
* Si konstanta identifekuoja kompiuteryje būtent mūsų serverį.
ServerSocket serveris = null;
* Jei ji jau užimta kitam tikslui, reikia parinkti kitokią reikšmę.
*/ try
int portas = 1200; {
ServerSocket serveris = nullnew ServerSocket(portas);
System.out.println("Kviečiame apsilankyti adresu:");
try
musu_adresas = "http://" + InetAddress.getLocalHost().getHostAddress() + ":"
{
serveris = new ServerSocket + serveris.getLocalPort(portas);
System.out.println("Kviečiame apsilankyti adresu:"musu_adresas);
musu_adresas = "http://"}
catch (Exception ex)
+ InetAddress.getLocalHost().getHostAddress() + ":"
+ serveris.getLocalPort();{
System.out.println(musu_adresas"Portas " + portas + " naudojamas kažkam kitam!");
} System.exit(1);
catch (Exception ex) }
{
while (true)
System.out.println("Portas " + portas+ " naudojamas kažkam kitam!");
System.exit(1); {
} try
// Amziams: {
Socket socket = serveris.accept();
while (true)
String atsakymas = "Sveikas, anarchistinis pasauli!";
{
OutputStream out = socket.getOutputStream();
try
{ int ilgis = atsakymas.length();
// Rašome standartines HTTP antraštes naršyklei:
Socket socket = serveris.accept();
StringBuffer atsakymo_buferis = new StringBuffer();
String atsakymas = "Sveikas, anarchistinis pasauli!";
OutputStream out = socket atsakymo_buferis.getOutputStreamappend("HTTP/1.0 200 OK\r\n");
int ilgis = atsakymas atsakymo_buferis.lengthappend("Content-Length: " + ilgis + "\r\n");
atsakymo_buferis.append("Content-LengthConnection: " + ilgis + "close\r\n");
// Rašome standartines HTTP antraštes naršyklei:
atsakymo_buferis.append("Content-Type: text/plain; charset=UTF-8\r\n");
StringBuffer atsakymo_buferis = new StringBuffer();
atsakymo_buferis.append("HTTP/1.0 200 OK\r\n");
// Rašome atsakymą:
atsakymo_buferis.append("Content-Length: " + ilgis + "\r\n");
atsakymo_buferis.append("Connection: close\r\n"atsakymas);
out.write(atsakymo_buferis.appendtoString().getBytes("Content-Type: text/plain; charset=UTF-8\r\n"));
atsakymo_buferis socket.appendshutdownOutput("\r\n");
// Rašome atsakymą: if (!socket.isClosed()) socket.close();
atsakymo_buferis.append(atsakymas); }
out.write catch (atsakymo_buferis.toString().getBytes("UTF-8")Exception exc);
socket.shutdownOutput(); {
if (!socket.isClosed()) socket exc.closeprintStackTrace();
}
catch (Exception exc)}
{}
}
exc.printStackTrace();
}
}
}
 
Paleista programa atspausdina adresą, kurio ji yra pasiekiama. Apsilankius šiuo adresu, naršyklei pateikiamas tekstas ''Sveikas, anarchistinis pasauli!''. Tekstas matomas kaip ir bet kuris kitas tinklalapis.
 
Sudėtingesnėse (realiai naudojamose) P2P sistemose naudojama ne standartinė naršyklė, o "anarchistinis klientas", kuris kartu yra ir serveris. Tokios sistemos (stalo žaidimas) [http://savannah.gnu.org/cgi-bin/viewcvs/*checkout*/classpath/classpath/examples/gnu/classpath/examples/CORBA/swing/README.html?rev=HEAD&content-type=text/html aprašymas anglų kalba].
 
==Nuorodos==