Java технологія и основні риси та перспективи застосування
| Категория реферата: Рефераты по информатике, программированию
| Теги реферата: изложение на тему, контрольная работа 6
| Добавил(а) на сайт: Shubkin.
Предыдущая страница реферата | 1 2 3 4 5 6 7 8 | Следующая страница реферата
String body = st.nextToken(CRLF); server.sendto(dest, body); break; case DELETE: busy = true; server.delete(id); break;
}
} close();
}
}
Клас ClientConnection реалізує обмін інформацією з конкретним клієнтом. В
ньому зберігається об’єкт класу Socket, до якого приєднаний цей клієнт, та
створюється потік, в якому здійснюється періодична спроба читати з сокета.
Якщо ця спроба завершується успіхом, тобто надійшло повідомлення від
клієнта, це повідомлення аналізується і здійснюється відповідна реакція.
Для здіснення цієї реакції викликаються методи класу Server, об’єкт якого
передається класу ClientConnection в якості параметра конструктора. Крім
того в цьому класі є метод, який здійснює безпосереднє надсилання
інформації до клієнта. Коли серверу потрібно надіслати інформацію
конкретному клієнтові, він викликає цей метод.
клас Client:
import java.util.*; import java.io.*; import java.net.*; import java.awt.*; import java.applet.*;
public class Client extends Applet { private ServerConnection server; private String serverName; private boolean single = false; private boolean seen_pass = false; private boolean name_set = false; private String name; private String others_name; private Panel topPanel; private Label prompt; private TextField namefield; private Button done; private TextField chatfield; private List idList; private TextArea dialogArea;
public void init() { setLayout( new BorderLayout() ); serverName = getCodeBase().getHost(); if (serverName.equals("")) serverName = "localhost"; prompt = new Label("Enter id:"); namefield = new TextField(30); topPanel = new Panel(); topPanel.setBackground(new Color(255, 255, 200)); topPanel.add(prompt); topPanel.add(namefield); add("North", topPanel); idList = new List(10, false); add("West", idList ); dialogArea = new TextArea(); dialogArea.setEditable( false ); add("Center", dialogArea );
}
public void start() { try { showStatus("Connecting to " + serverName); server = new ServerConnection(this,serverName); server.start(); showStatus("Connected: " + serverName);
} catch (Exception e) { single = true;
}
}
public void stop() { if (!single) server.quit();
}
void add(String id, String hostname, String name) { delete(id); // in case it is already there. idList.addItem("(" + id + ") " + name + "@" + hostname);
}
void delete(String id) { for (int i = 0; i < idList.countItems(); i++) {
String s = idList.getItem(i); s = s.substring(s.indexOf("(") + 1, s.indexOf(")")); if (s.equals(id)) { idList.delItem(i); break;
}
} if (idList.countItems() == 0) showStatus("Wait for other players to arrive.");
} private String getName(String id) { for (int i = 0; i < idList.countItems(); i++) {
String s = idList.getItem(i);
String id1 = s.substring(s.indexOf("(") + 1, s.indexOf(")")); if (id1.equals(id)) { return s.substring(s.indexOf(" ") + 3, s.indexOf("@"));
}
} return null;
}
void chat(String id, String s) { dialogArea.appendText(id + ": " + s+ "n");//append showStatus(id + ": " + s);
}
void quit(String id) { showStatus(id + " just quit."); delete(id);
}
private void nameEntered(String s) { if (s.equals("")) return;
System.out.println(s); name = s; if( !single )
{ server.setName(name); showStatus("Wait for other players to arrive.");
Рекомендуем скачать другие рефераты по теме: конспект урока 5 класс, оформление доклада.
Категории:
Предыдущая страница реферата | 1 2 3 4 5 6 7 8 | Следующая страница реферата