zurück zu java basics part2 <--- ---> weiter zu java and networking part 2
import java.net
Infos:
Network (IP,…) Transport (TCP, UDP,…). Total 65535 Ports. Port 1 bis
1023 sind für Systemdienste.
Port 0/NULL liefert freien Port
try { InetAddress adresse =
InetAddresse.getByName(“www.suvi.org”);
// www.hsr.ch/152.96.128.80
System.out.println(adresse);
// InetAddress[] adressen = InetAddress.getAllByName(“www.hsr.ch”);
//holt alle IP-Adressen
}
catch (UnknownHostException e)
{ System.out.println ( “couldn’t find host “ +e.toString()
);
public static InetAddress getLocalHost() // liefert lokale
IP
public
String getHostName()
// liefert den Hostname einer InetAdress
public byte[]
getAddress()
// liefert InetAddress zurück or getAllByNAme(“www.suvi.org”)
public Socket (String host, int port) throws UnknownHostException,
IOException
public Socket (InetAddress host, int port) throws IOException
Beispiel:
import java.io.*; import java.net.*;
public class EchoClient
{
public static void main(String[] args) throws IOException
{
Socket
echoSocket = null; PrintWriter out =
null;
BufferedReader in = null;
try{
echoSocket = new Socket (“servername”, 77);
out = new PrintWriter(echoSocket.getOutputStream(), true);
in = new BufferedReader(new InputStreamReader(echoSocket.getInputStream()));
} catch (Exception e) { System.out.println(e); exit(1); }
BufferedReader stdIn = new BufferedReader(new InputStreamReader(System.in));
String userInput;
while ((userInput = stdIn.readLine()) !=null)
{ out.println(userInput);
System.out.println(“echo: “ + in.readLine());
}
out.close(); in.close(); stdIn.close();
echoSocket.close();
}
}
public ServerSocket(int port) throws IOException
public ServerSocket(int port, int queueLength, InetAddress
bindAddress) throws IOException
Thread-per-Client-Modell
import java.io.*; import java.net.*;
public class DelayedEchoServer extends Thread
{
Socket
_clientSocket;
BufferedReader
_br;
PrintWriter _pw:
public DelayedEchoServer (Socket clientSocket)
{ _clinetSocket = clientSocket;
try{ _br = new BufferedReader( new InputStreamReader(clientSocket.getInputStream()));
_pw = new PrintWriter(clientSocket.getOutputStream());
} catch (IOException ioe) { ioe.printStackTrace(); }
this.start();
}
public void run()
{
try{ String string = _br.readLine();
System.out.println(“Wait 30sec“);
try{ this.sleep(30000);
} catch ( InterruptException io) {}
_pw.write(string);
_br.close(); _pw.close(); _clientSocket.close();
} catch(IOException ioe) { ioe.printStackTrase(); }
}
public static void main (String args[])
{
try{ ServerSocket serverSocket = new ServerSocket(8888);
while(true)
//setSoTimeout(Millisec)
{ Socket
clientSocket =
serverSocket.accept();
//wartet bis Anfrage kommt
DelayEchoServer des = new DelayedEchoServer(clientSocket);
} catch (IOException ioe) { ioe.printStackTrace(); }
}
}
public DatagramPacket(byte[] buffer, int length); public DatagramPacket(byte[]
buffer,int offset, int length)
maximal 65507 bytes pro Packet 8 Byte UDP Header 20-60Byte IP Header
(tot. 64KByte daten)
public
DatagramSocket();
//Client
Socket
//Packetgrösse von 8KByte sind ein guter kompromis
public DatagramSocket(int port); //Server Socket
public void send(DatagramPAcket
dp);
//sende
public void receive(DatagramPacket
dp);
//empfangen
public void
close();
//schliessen
public synchronized void setSOTimeout(int timeout); //Timeout bei
Server setzen ->InterruptedException
IP-Range 224.0.0.0 bis
239.255.255.255
//TTL (time-to-live) default:1
public void MulticastSocket(int
port) throws
SocketException
, joingroup( ), leavegroup( ), send( ); receive( )
try{
URL u = new URL(“http://www.hsr.ch/index.html”);
//u.getProtocol(); u.getHost(); u.getPort(); u.getFile(); u.getRef();
BufferedReader theHTML = new BufferedReader(new InputStreamReader(u.openStream());
//HTTP daten holen
while((thisLine = theHTML.readLine() ! = null) { System.out.println(thisLine);
} cacht(Exception e) { System.err.println(e); }
public
URLConnection openConnection();
//öffnet
Verbindung
uc.setDoOutput(true);
URLConnection uc = u.openConnection();
uc.getInputStream(); uc.getOutpuStream();
public final Object
getContent();
//liefert MIME-Header text/plain text/generic image/gif image/jpeg
Object o = u.getContent(); System.out.println(o.getClass().getName());
zurück zu java basics part2 <--- ---> weiter zuto java and networking part 2