Mateusz Grauman, grupa 3, 137290 22.04.2013
Rozwój aplikacji internetowych w medycynie
Zadanie numer 1
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
}
}
}
- 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;
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>
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.
Obrazek nr 3. Obsługa klienta.
Obrazek nr 4. Stan serwera po obsłudze klienta.
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ę.