Komunikacja klient-serwer

0

Witam, jest to mój pierwszy post więc proszę o wyrozumiałość. Z programowania rozproszonego nie jestem orłem więc najłatwiej chyba będzie jak nie będe opisywał problemu własnymi słowami. Do napisania mam program:

Napisz kompletny program wielowątkowego serwera http w Javie działającego w trybie konsoli, który zakłada, że w sieci tcp/ip pod każdym z adresów IP podanym w linii wywołania programu może działać klient http. Serwer do każdego z klientów z IP z listy w wywołaniu wysyła komunikat "Mam Cię"

Jak normalnie radze sobie z połączeniem klient serwer tak z tym fantem nie wiem jak nawet ruszyć. Jeżeli ktoś ma jakiekolwiek pomysły z góry dziękuje :)

1

Jeżeli chodzi o serwer wielowątkowy to:
http://www.oracle.com/technetwork/java/socket-140484.html

Wydaje Mi się, że piszesz aplikacje która działa na porcie 80 lub 8080 - i jak otworzysz przeglądarke(klienta), to serwer wysyła pakiet z daną "Mam Cię".

Prosty serwer http://fragments.turtlemeat.com/javawebserver.phpt.com/javawebserver.php

0

Czyli, z tego co zrozumiałem.

Tworzę serwer wielowątkowy.
W kodzie definiuje adresy IP klientów http.
W wątku serwera korzystając z tych adresów oraz domyślnego portu http - 80 wysyłam do każdego z nich ciąg znaków "Mam Cię".
Moje pytanie jest takie: Jak mogę sprawdzić czy te dane w ogóle gdzieś się wysłały. Gdzie mogę je gdzieś wyświetlić, ewentualnie je odebrać? Jak sprawdzić czy kod napisany jest poprawny?

EDIT:

Robię trochę po omacku. Udało mi się napisać trochę kodu niestety zwraca on błąd java.net.ConnectException: Connection refused: connect

import java.io.*;
import java.net.*;
import java.util.*;
import java.awt.*; 
import javax.swing.*;

public class NowyProjekt
{
    public static void main(String[] args){
        String klientPierwszy = "localhost";
        String klientDrugi = "192.168.1.152";
        Socket klient1;
        try {
            klient1 = new Socket (klientPierwszy, 80);
            PrintWriter wyjscie = new PrintWriter(klient1.getOutputStream(), true);
            wyjscie.println("Mam Cie");
        } catch (IOException e) {
            System.out.println(e);
        }
        Socket klient2;
        try {
            klient2 = new Socket (klientPierwszy, 80);
            PrintWriter wyjscie = new PrintWriter(klient2.getOutputStream(), true);
            wyjscie.println("Mam Cie");
        } catch (IOException e) {
            System.out.println(e);
        }
        
    }
}
0

Siedzę nad tym od rana. Udało się coś napisać. Program kompiluje i uruchamia się , nie zwraca błędów.

Proszę tylko o opinie czy jest do dobrze napisane.

import java.io.*;
import java.net.*;

public class NowyProjekt
{
    private static class Polaczenie extends Thread {

        private BufferedReader wejscie;
        private PrintWriter wyjscie;
        private Socket socket;
        private boolean polaczony;
        String adres;

        public Polaczenie(String w) {
            adres = w;
            polaczony = true;
        }

        public void run() {
            try {
                 socket = new Socket (adres, 80);
                 PrintWriter wyjscie = new PrintWriter(socket.getOutputStream(), true);
                 wyjscie.println("Mam Cie");
                 System.out.println("Chyba sie udalo");
            } catch (IOException e) {
                 System.out.println(e);
            } finally {
            }
        }
    }
    public static void main(String[] args){
        try {
                ServerSocket serwer = new ServerSocket(80);

                Polaczenie klient1 = new Polaczenie("localhost");
                Polaczenie klient2 = new Polaczenie("127.0.0.1");
                klient1.start(); 
                klient2.start();
                System.out.println("Polaczylo");
            } catch (SocketException e) {
                System.out.println("Error");
            } catch (Exception e) {
                System.out.println("Error");
            } finally {
                
            }
    }
}

1
  1. Wireshark ;]
  2. Pewny jesteś ze coś na tym porcie 80 oczekuje na połączenie?

1 użytkowników online, w tym zalogowanych: 0, gości: 1