Mateusz Grauman Klient Serwer

background image

Mateusz Grauman, grupa 3, 137290 22.04.2013

Rozwój aplikacji internetowych w medycynie

Zadanie numer 1

Programy typu klient-serwer


1. Kody źródłowe programów:

- klienta( w języku C#)

using

System;

using

System.Net;

using

System.Collections.Generic;

using

System.Net.Sockets;

using

System.Text;

using

System.IO;

//klient c#

namespace

ZegarNet

{

class

Klient_cs

{

public

static

void

Main(

string

[] args)

{

Console

.WriteLine(

"Podaj komende"

);

string

host =

"localhost"

;

int

port = 1117;

//numer portu

byte

[] bufor;

string

slowo =

Console

.ReadLine();

//wpisanie słowa jako żądanie

string

haslo=

"GET /HTTP/1.1"

;

//wpisać, by wysłać żądanie

if

(slowo == haslo)

//jeśli hasło żądania się zgadza

{

try

{

TcpClient

socket =

new

TcpClient

(host, port);

NetworkStream

netStream = socket.GetStream();

bufor =

new

byte

[socket.ReceiveBufferSize];

int

iLength = netStream.Read(bufor, 0, socket.ReceiveBufferSize);

String

odpowiedz =

Encoding

.ASCII.GetString(bufor);

Console

.WriteLine(

"\nOdpowiedz {0} to: "

, host);

//wypisanie do konsoli to, co klient otrzymał od serwera

Console

.WriteLine(

"\n{0}"

, odpowiedz.Substring(0, iLength));

}

catch

{

Console

.WriteLine(

"Pojawil sie wyjatek! "

);

}
}

else

{

Console

.WriteLine(

"Zla komenda"

);

}

Console

.Read();

//odczytanie danych

}
}
}


background image

- serwera( w języku Java)

package moje;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.PrintStream;
import java.net.ServerSocket;
import java.net.Socket;
import java.net.SocketException;
import java.net.URL;
import java.util.Date;
/**
*
* @author mateusz
*/
class Watek extends Thread{
BufferedReader strumienWejscia;
PrintStream strumienWyjscia;
String echo;
Socket gniazdo;
String host = "localhost";

public Watek(Socket gniazdo){
this.gniazdo=gniazdo;
}

@Override
public void run(){
try{
strumienWejscia = new BufferedReader(new InputStreamReader(gniazdo.getInputStream()));
strumienWyjscia = new PrintStream(gniazdo.getOutputStream());
URL url = new URL("file:///C:/Users/Mateusz/Desktop/index.html");//źródło mojej strony
BufferedReader reader = new BufferedReader(new InputStreamReader(url.openStream()));
String dane;
//dane wysyłane do klienta
while((dane=reader.readLine())!= null){
strumienWyjscia.print(dane + "\nData: "+(new Date()).toString()+ " \nport: " +
gniazdo.getPort()+ " \nIP: " + gniazdo.getLocalAddress() + " \nURL: " + url);
}
reader.close();

while((echo=strumienWejscia.readLine())!=null ){
System.out.print(echo);
}
}catch(Exception e){
e.printStackTrace();
}
}//run
} //class

public class MojProgram {
public static void main(String[] args){
ServerSocket serwer;

background image

Socket gniazdo;
Watek w;
int i=0;
try {
serwer = new ServerSocket(1117);
while(true){
try{
System.out.println("Czekam na polaczenie");
gniazdo = serwer.accept();
System.out.println("Polaczenie przyszlo: " + (new Date()).toString());
//semafor ograniczający dostęp klientów do serwera
if(i<5){
w = new Watek(gniazdo);
w.start();
i++;
}
if(i >= 5){
System.out.println("Brak wolnych portow, prosze poczekac");
break;
}
}catch(SocketException e){
System.out.println("Zerwano polaczenie" + e);//przy zerwaniu połączenia
i--;
}catch(IOException e){
System.err.println(e);
}
}//while
}catch(IOException e){
System.err.println(e);
}
}//main
}//class

-kod źródłowy mojej strony( HTML)

<?xml version="1.0" encoding="utf-8"?><!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.1//EN"
"http://www.w3.org/TR/xhtml11/DTD/xhtml11.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="pl" lang="pl">
<head>

<title>Przyklad dokumentu zgodnego z XHTML 1.1</title>

</head>
<body>

<div>To jest przyklad strony.</div>

<div>Mateusz Grauman gr3. 137290</div>

</body>
</html>







background image

2. Zrzuty z ekranu moich programów


Obrazek nr 1. Start serwera .


Obrazek nr 2. Start klienta.


Należy podać mu komendę: GET /HTTP/1.1 żeby wysłać żądanie.

background image


Obrazek nr 3. Obsługa klienta.


Obrazek nr 4. Stan serwera po obsłudze klienta.







background image


Obrazek nr 5. Pojawienie się komunikatu gdy serwer obsługuje więcej niż 5 klientów w tym samym
czasie.


Obrazek nr 6. Pojawienie się komunikatu gdy klient wpisze złą komendę.







Wyszukiwarka

Podobne podstrony:
5.1.13 Sieć klient-serwer, 5.1 Okablowanie sieci LAN
klient serwer
Klient serwer
1 Model klient serwerid 9461 Nieznany (2)
Klient serwer 8
Systemy klient serwer
Różnice sieci Klient Serwer Sieć równorzędna
5.1.13 Sieć klient-serwer, 5.1 Okablowanie sieci LAN
klient serwer
PZ klient serwer
Klientelizm, kumoterstwo, nepotyzm
obsluga klienta 1
ING Lojalność wobec klientów na podstawie ING Banku Śląskiego S A
Analiza rentowności klientów przedsiębiorstwa Kospan
Aluminum i miedź Mateusz Bednarski
serwer wydruku

więcej podobnych podstron