java.lab13.socket.pdf
(
70 KB
)
Pobierz
107376244 UNPDF
Laboratorium Java – Gniazda sieciowe [2h]
Klasa Socket:
java.lang.
Object
\--java.net.
Socket
.close() - zamyka połączenie
.getInputStream() - zwraca strumień wejściowy dla danego gniazda
.getOutputStream() - zwraca strumień wyjściowy dla danego gniazda
public
class
NetworkClient {
public
static
void
main(String[] args)
throws
IOException {
//pobranie adresu sieciowego
InetAddress addr = InetAddress.getByName(
"localhost"
);
//otwarcie polaczenia
Socket socket =
new
Socket(addr, NetworkServer.PORT);
try
{
//utworzenie strumieni
ObjectOutputStream out =
new
ObjectOutputStream(
socket.getOutputStream());
ObjectInputStream in =
new
ObjectInputStream(
socket.getInputStream());
//transmisja
out.writeObject(
new
String(
"Hello!"
));
out.flush();
}
finally
{
//zamkniecie polaczenia
socket.close();
}
}
}
Klasa ServerSocket:
java.lang.
Object
\--java.net.
ServerSocket
.accept()
- oczekuje na połączenie i zwraca gniazdo do jego obsługi
.close()
- zamyka połączenie
public
class
NetworkServer {
static
final
int
PORT = 1234;
public
static
void
main(String[] args)
throws
IOException {
//utworzenie serwera
ServerSocket s =
new
ServerSocket(PORT);
try
{
while
(
true
) {
//oczekiwanie na nadejscie polaczenia
Socket socket = s.accept();
try
{
//utworzenie watka serwera
new
ServerThread(socket);
}
catch
(IOException e) {
//zamkniecie polaczenia w przypadku wystapienia bledu
socket.close();
}
}
}
finally
{
s.close();
}
}
}
Laboratorium Java 13
(Opracowanie: Konrad Kurczyna)
1/2
Wątek serwera:
–
tworzenie strumieni w odwrotnej kolejności w stosunku do programu klienta
–
zamknięcie połączenia po zerwaniu transmisji (IOException) lub innej sytuacji wyjątkowej
public
class
ServerThread
extends
Thread {
private
Socket socket;
private
ObjectInputStream in;
private
ObjectOutputStream out;
public
ServerThread(Socket s)
throws
IOException {
socket = s;
//utworzenie strumieni
in =
new
ObjectInputStream(socket.getInputStream());
out =
new
ObjectOutputStream(socket.getOutputStream());
//wystartowanie watka
start();
}
public
void
run() {
try
{
//glowna petla watka
while
(
true
) {
System.out.println(in.readObject());
}
}
catch
(Exception e) {
}
finally
{
try
{
//zamkniecie polaczenia
socket.close();
}
catch
(IOException e) {
e.printStackTrace();
}
}
}
}
SSL (Secure Sockets Layer)
Klasa SSLSocket:
java.lang.
Object
\--java.net.
Socket
\--javax.net.ssl.
SSLSocket
Klasa SSLServerSocket:
java.lang.
Object
\--java.net.
ServerSocket
\--javax.net.ssl.
SSLServerSocket
Zadanie:
–
utworzyć aplikację klienta oraz wielowątkowego serwera
–
obsłużyć komunikację klient/serwer lub klient/serwer/klient
Laboratorium Java 13
(Opracowanie: Konrad Kurczyna)
2/2
Plik z chomika:
ruperti
Inne pliki z tego folderu:
zadanie6.pdf
(223 KB)
zadanie1.pdf
(417 KB)
wyklad_1xbvasj64.pdf
(352 KB)
wyklad11.pdf
(93 KB)
udp.pdf
(342 KB)
Inne foldery tego chomika:
Pliki dostępne do 01.06.2025
Adobe Illustrator - cwiczenia
Ajax
Algorytmy
Autokształty, ClipArt ćwiczenia
Zgłoś jeśli
naruszono regulamin