TCP Πρωτόκολλο υλοποίηση σε JAVA

Συζητήσεις για την Java

Συντονιστές: WebDev Moderators, Super-Moderators

Απάντηση
thanos45
Δημοσιεύσεις: 8
Εγγραφή: 16 Σεπ 2008 13:22
Τοποθεσία: ΑΘΗΝΑ

TCP Πρωτόκολλο υλοποίηση σε JAVA

Δημοσίευση από thanos45 » 23 Φεβ 2011 21:10

Παιδιά έχω την παρακάτω κλάση που η υλοποίηση της είναι περίπου όπως
τα βήματα εγκατάστασης μιας σύνδεσης που χρησιμοποιεί το TCP πρωτόκολλο
έχει κανείς καμία ιδέα να αλλάξουμε τα ορίσματα των πινάκων String σε τέτοια που να
ανταποκρίνονται σε μηνύματα μεταξύ Server και Client
π.χ.
SERVER>>>Σε αναμονή σύνδεσης
CLIENT>>>Είμαι ο <Χ> και θέλω να συνδεθώ
.
.
.
.
.
Ο κώδικας της κλάσης με τα ευολογήματα ακολουθεί:
public class KKProtocol {
private static final int AWAIT = 0;
private static final int KNOCK_KNOCK_SENT = 1;
private static final int NAME_SENT = 2;
private static final int MORE = 3;

private static final int NUM_ROUNDS = 5;

private int state = AWAIT;
private int currentRound = 0;

private String[] names = { "You", "DNT", "Atch", "Who", "Who" };
private String[] punch_line = { "Did you call?",
"Your DeNTist! I wont hurt you!",
"Bless you!",
"Is there an owl in here?",
"Is there an echo in here?" };

//μέθοδος επεξεργασίας του μηνύματος εισόδου
public String processInput(String theInput) {
String theOutput = null;

if (state == AWAIT) {
theOutput = "Knock! Knock!";
state = KNOCK_KNOCK_SENT;
} else if (state == KNOCK_KNOCK_SENT) {
if (theInput.equalsIgnoreCase("Who's there?")) {
theOutput = names[currentRound];
state = NAME_SENT;
} else {
theOutput = "You're supposed to say \"Who's there?\"! " +
"Try again. Knock! Knock!";
}
} else if (state == NAME_SENT) {
if (theInput.equalsIgnoreCase(names[currentRound] + " who?")) {
theOutput = punch_line[currentRound] + "\nWant more? (y/n)";
state = MORE;
} else {
theOutput = "You're supposed to say \"" +
names[currentRound] +
" who?\"" +
"! Try again. Knock! Knock!";
state = KNOCK_KNOCK_SENT;
}
} else if (state == MORE) {
if (theInput.equalsIgnoreCase("y")) {
theOutput = "Knock! Knock!";
if (currentRound == (NUM_ROUNDS - 1))
currentRound = 0;
else
currentRound++;
state = KNOCK_KNOCK_SENT;
} else {
theOutput = "Bye.";
state = AWAIT;
}
}
return theOutput;

}//τέλος μεθόδου

}//τέλος κλάσης

pimpogio
Δημοσιεύσεις: 1080
Εγγραφή: 28 Δεκ 2010 14:08

TCP Πρωτόκολλο υλοποίηση σε JAVA

Δημοσίευση από pimpogio » 24 Φεβ 2011 18:55

δες τα παραδειγματα στο java tutorial τα λενε αυτα που θες με πολυ παραστατικο κωδικα

gorgoro
Δημοσιεύσεις: 98
Εγγραφή: 13 Δεκ 2010 14:14

TCP Πρωτόκολλο υλοποίηση σε JAVA

Δημοσίευση από gorgoro » 25 Φεβ 2011 14:12

thanos45 έγραψε:Παιδιά έχω την παρακάτω κλάση που η υλοποίηση της είναι περίπου όπως
τα βήματα εγκατάστασης μιας σύνδεσης που χρησιμοποιεί το TCP πρωτόκολλο
έχει κανείς καμία ιδέα να αλλάξουμε τα ορίσματα των πινάκων String σε τέτοια που να
ανταποκρίνονται σε μηνύματα μεταξύ Server και Client
π.χ.
SERVER>>>Σε αναμονή σύνδεσης
CLIENT>>>Είμαι ο <Χ> και θέλω να συνδεθώ
.
.
.
.
.
Ο κώδικας της κλάσης με τα ευολογήματα ακολουθεί:
public class KKProtocol {
private static final int AWAIT = 0;
private static final int KNOCK_KNOCK_SENT = 1;
private static final int NAME_SENT = 2;
private static final int MORE = 3;

private static final int NUM_ROUNDS = 5;

private int state = AWAIT;
private int currentRound = 0;

private String[] names = { "You", "DNT", "Atch", "Who", "Who" };
private String[] punch_line = { "Did you call?",
"Your DeNTist! I wont hurt you!",
"Bless you!",
"Is there an owl in here?",
"Is there an echo in here?" };

//μέθοδος επεξεργασίας του μηνύματος εισόδου
public String processInput(String theInput) {
String theOutput = null;

if (state == AWAIT) {
theOutput = "Knock! Knock!";
state = KNOCK_KNOCK_SENT;
} else if (state == KNOCK_KNOCK_SENT) {
if (theInput.equalsIgnoreCase("Who's there?")) {
theOutput = names[currentRound];
state = NAME_SENT;
} else {
theOutput = "You're supposed to say "Who's there?"! " +
"Try again. Knock! Knock!";
}
} else if (state == NAME_SENT) {
if (theInput.equalsIgnoreCase(names[currentRound] + " who?")) {
theOutput = punch_line[currentRound] + "\nWant more? (y/n)";
state = MORE;
} else {
theOutput = "You're supposed to say "" +
names[currentRound] +
" who?"" +
"! Try again. Knock! Knock!";
state = KNOCK_KNOCK_SENT;
}
} else if (state == MORE) {
if (theInput.equalsIgnoreCase("y")) {
theOutput = "Knock! Knock!";
if (currentRound == (NUM_ROUNDS - 1))
currentRound = 0;
else
currentRound++;
state = KNOCK_KNOCK_SENT;
} else {
theOutput = "Bye.";
state = AWAIT;
}
}
return theOutput;

}//τέλος μεθόδου

}//τέλος κλάσης
τι θεσ να φτιαξεις ? ειναι αυτο που νομιζω δηλαδη καποια εφαρμογη για κατι σαν το team ?

thanos45
Δημοσιεύσεις: 8
Εγγραφή: 16 Σεπ 2008 13:22
Τοποθεσία: ΑΘΗΝΑ

TCP Πρωτόκολλο υλοποίηση σε JAVA

Δημοσίευση από thanos45 » 26 Φεβ 2011 08:47

Ένα TCP Πρωτόκολλο επικοινωνίας
μεταξύ client-server.
Και απλά είχα κολήσει λίγο(έχω κάνει και πολύ πιό δύσκολα απ αυτό αλλά καμιά φορά στα απλά κολάω)
Δηλαδή αν πάρεις μήνυμα χ απαντάς ψ
αλλιώς αν ο χρήστης έγραψε κάτι άλλο
κάνε η γράψε κάτι άλλο.
όπως και νάχει το έκανα.
Και μόνο για το ενδιαφέρον όμως ευχαριστώ πολύ

Απάντηση

Επιστροφή στο “Java”

Μέλη σε σύνδεση

Μέλη σε αυτήν τη Δ. Συζήτηση: Δεν υπάρχουν εγγεγραμμένα μέλη και 1 επισκέπτης