her er
appleten://tak for hjælpen
import java.net.*;
import java.io.*;
import java.awt.*;
import java.applet.*;
public class ChatApplet extends Applet implements Runnable {
protected DataInputStream i;
protected DataOutputStream o;
protected TextArea output;
// protected TextField input;
protected Thread listener;
public void init () {
setLayout (new BorderLayout ());
add ("Center", output = new TextArea ());
output.setEditable (false);
//add ("South", input = new TextField ());
//input.setEditable (false);
}
public void start () {
listener = new Thread (this);
listener.start ();
}
public void stop () {
if (listener != null)
listener.stop ();
listener = null;
}
public void run () {
try {
//String host = getCodeBase ().getHost ();
InetAddress adresse = InetAddress.getLocalHost();
int serverPort = 7787;
Socket s = new Socket (adresse.getHostAddress(),serverPort);
i = new DataInputStream (s.getInputStream ());
o = new DataOutputStream (s.getOutputStream ());
output.appendText (" connected.\n");
// input.setEditable (true);
//input.requestFocus ();
execute ();
} catch (IOException ex) {
ByteArrayOutputStream out = new ByteArrayOutputStream ();
ex.printStackTrace (new PrintStream (out));
output.appendText ("\n" + out);
}
}
public void execute () {
try {
while (true) {
String line = i.readUTF();
System.out.println("receved"+line);
output.appendText (line + "\n");
}
} catch (IOException ex) {
ByteArrayOutputStream out = new ByteArrayOutputStream ();
ex.printStackTrace (new PrintStream (out));
output.appendText (out.toString ());
} finally {
listener = null;
// input.hide ();
validate ();
try {
o.close ();
} catch (IOException ex) {
ex.printStackTrace ();
}
}
}}
jsp side:
<html>
<head>
<%@ page language="java"%>
<jsp:useBean id="server" scope="application" class="sock.WebServer" />
<!--jsp:setProperty name="server" property="*" /-->
<!--jsp:setProperty name="server" property="besked" value="WELCOM TO CHAT"/-->
</head>
<% server.init(); %>
<table border="1" width="100%" height="180">
<tr>
<td width="24%" bgcolor="#FF00FF" style="border-style: groove; border-width: 5" align="center" height="38"><img border="0" src="byvaaben1x1.gif" width="48" height="55"></td>
<td width="48%" style="border-left-style: solid; border-right-style: groove" align="center" height="38">
<font size="5" face="Algerian" color="#9999FF"><span style="background-color: #FFFFFF">Welcome to HelleTalk</span></font>
</td>
<td width="28%" style="border-style: groove; border-width: 5" align="center" height="40" bgcolor="#CCFFFF"><img border="0" src="byvaaben1x1.gif" width="48" height="50"></td>
</tr>
<tr>
<td width="24%" bgcolor="#FF00FF" style="border-style: groove; border-width: 5" align="center" height="260"><font color="#000066" size="4">log
ind</font>
<p><font color="#000066" size="4">log af</font></td>
<td width="48%" style="border-style: groove; border-width: 5" align="center" height="260"><center>
<jsp:plugin type="applet"
code="ChatApplet.class"
codebase="/x/"
jreversion="1.2"
width="350" height="380">
</jsp:plugin>
</center></td>
<td width="28%" style="border-style: groove; border-width: 5" align="center" height="260" bgcolor="#CCFFFF"><font size="4">on-line</font>
<p><font size="4">opret chatroom</font></p>
<p><font size="4">chatrooms:</font></p>
<p><font size="4">inviter brugere</font></td>
</tr>
</table>
<p><font size="5"><form method=post action="Helle2.jsp">
<input type="text" name="besked" size="66">
<jsp:setProperty name="server" property="besked" />
</font><input type="submit"
value="Send besked" name="B1"
style="font-weight: bold; border-style: solid;
border-color: #0066FF"></form>
<p>
<br>
</html>
beans:
package sock;
import java.io.*;
import java.net.*;
import java.util.*;
import java.lang.*;
import java.beans.*;
public class WebServer
{
private Room enChatRoom;
private String besked="hej";
private Vector chatRooms = new Vector();
public void setBesked(String b)
{
besked = b;
notifyRoom(besked);
}
public void init () {
try{
//int serverPort = 7787; // server port
enChatRoom = new Room("Main","Administrator",false,null);
chatRooms.addElement(enChatRoom);
Listener listener = new Listener(enChatRoom);
//ServerSocket listenSocket = new ServerSocket(serverPort);
//while(true)
// {
// Socket clientSocket = listenSocket.accept();
// enChatRoom.addClient(clientSocket);
//Forbindelse c = new Forbindelse(clientSocket);
} catch(Exception e) {System.out.println("Listen socket:"+e.getMessage());}
}
public void notifyRoom(String b)
{
enChatRoom.vidersend(b);
}
}
class Room
{
private String name = "";
private String ejer = "";
private boolean priv;
private String password = "";
private Vector brugere;
private FileOutputStream chatLogStream;
private Socket sc;
private Forbindelse con;
Room(String navn, String minEjer, boolean isPrivate,
String minPassword)
{
name = navn;
ejer = minEjer;
priv = isPrivate;
if (password != null)
password = minPassword;
brugere = new Vector();
}
public void addClient(Socket newClient)
{
sc = newClient;
//Connection con = new Connection(sc)
brugere.addElement(sc);
// c.entreRoom.setChatRoom(this);
}
public void vidersend(String s)
{
synchronized(brugere)
{
Iterator i = brugere.iterator();
while (i.hasNext())
{
Socket sc = ((Socket)i.next());
try
{
con = new Forbindelse(sc,s);
//con.update(s);
}
catch (Exception ex)
{
//con.stop ();
}
}
}
}
public void sletClient(Socket klient)
{
brugere.removeElement(klient);
// brugere.trimToSize();
//klient.user.setChatRoom(null);
}
/*public void setLogging(boolean onOff)
throws IOException
{
//luk eller åbn log in for room
if (onOff)
{
// åbn log file
File chatLogFile = new File(name + ".chatlog");
chatLogStream = new FileOutputStream(chatLogFile);
}
else
{
// luk log file
if (chatLogStream != null)
{
chatLogStream.close();
chatLogStream = null;
}
}
}
protected void log(String logText)
throws IOException
{
if (chatLogStream != null)
{
try {
synchronized(chatLogStream)
{
byte[] bytes = logText.getBytes();
chatLogStream.write(bytes);
}
}
catch (IOException e) {
chatLogStream.close();
chatLogStream = null;
throw(e);
}
}
}
protected void finalize()
{
// room er væk luk log file.
try {
chatLogStream.close();
}
catch (IOException e) {}
}/*/
}
class Forbindelse extends Thread {
private DataInputStream in;
private DataOutputStream out;
private Socket clientSocket;
private String entreRoom;
private String besked;
public Forbindelse (Socket aClientSocket,String str) {
try{
clientSocket = aClientSocket;
in = new DataInputStream( clientSocket.getInputStream());
out =new DataOutputStream( clientSocket.getOutputStream());
besked = str;
}catch (IOException e){}
this.start();
}
/*public void update(String besked)
{
try{
synchronized(out)
{
out.writeUTF(besked);
}
out.flush();
}
// catch (IOException e){}
}*/
public void run()
{
try{
while(true)
{
synchronized(out)
{
out.writeUTF(besked);
}
out.flush();
}
// } catch (IOException e){}
// try {
// String data = "";
// System.out.println(clientSocket.getInetAddress());
// while(!data.equalsIgnoreCase("Quit") && data != "")
// while(true)
{
// data = in.readLine();
}
}catch (EOFException e){System.out.println("EOF:"+e.getMessage());
//}catch (InterruptedException e){System.out.println("threds :"+e.getMessage());
} catch(IOException e) {System.out.println("readline:"+e.getMessage());
} finally{ try {clientSocket.close();}catch (IOException e){/*close failed*/}}
}
}
class Listener extends Thread
{
private int serverPort = 7787;
private Room main;
public Listener(Room main)
{
this.main = main;
start();
}
public void run()
{
try
{
ServerSocket listenSocket = new ServerSocket(serverPort);
while(true)
{
Socket clientSocket = listenSocket.accept();
main.addClient(clientSocket);
//Connection c = new Connection(clientSocket);
}
} catch(IOException e) {System.out.println("Listen socket:"+e.getMessage());}
}
}