disky:
Jeg har rodet lidt kode samme til en applet, som jeg mener skulle lytte på port 7913, og opdaterer browseren, hvis der bliver sende noget tekst på porten.
Men når jeg prøver at sende noget på porten, så kommer denne fejl:
java.net.ConnectException: Connection refused: connect
at java.net.PlainSocketImpl.socketConnect(Native Method)
at java.net.PlainSocketImpl.doConnect(PlainSocketImpl.java:350)
at java.net.PlainSocketImpl.connectToAddress(PlainSocketImpl.java:137)
at java.net.PlainSocketImpl.connect(PlainSocketImpl.java:124)
at java.net.Socket.<init>(Socket.java:268)
at java.net.Socket.<init>(Socket.java:95)
at Sender.send(Sender.java:26)
at Sender.main(Sender.java:42)
Appletten se således ud:
import java.applet.*;
import java.awt.*;
import java.net.*;
import java.io.*;
import java.io.BufferedInputStream;
import java.io.IOException;
import java.net.ServerSocket;
import java.net.Socket;
import java.net.SocketException;
public class UpdateApplet extends Applet {
public class Receiver {
private static final int portNumber = 7913;
private ServerSocket socket;
private char chx = 0;
/** Creates new Receiver */
public Receiver() {
try {
socket = new ServerSocket(portNumber);
}
catch (IOException e) {
e.printStackTrace(System.out);
}
}
public void listen() {
Socket sock = null;
try {
System.out.println("Start to listen");
sock=socket.accept();
System.out.println("Connection accepted");
BufferedInputStream in=new BufferedInputStream(sock.getInputStream());
int data;
// char chx;
try
{
while( (data=in.read())!=-1)
{
chx=(char)data;
System.out.print(chx);
}
}
catch (SocketException e)
{
//e.printStackTrace(System.out);
System.out.println("Message = "+e.getMessage());
}
if (chx != 0) {
try {
URL url = new URL("
http://www.dr.dk");
getAppletContext().showDocument(url,"_blank");
}
catch (Exception ex) {}
}
if(sock!=null)
{
sock.close();
System.out.println("Socket connection has been closed");
}
}
catch (IOException e)
{
e.printStackTrace(System.out);
}
}
}
}
Jeg sender noget tekst på porten via din klasse:
public class AppletCom {
/** Creates new AppletCom */
public AppletCom()
{
}
/**
* @param args the command line arguments
*/
public static void main(String args[])
{
if(args[0].equals("send"))
{
Sender sender=new Sender();
sender.send("Hej med dig");
}
/*
else if(args[0].equals("receive"))
{
Receiver receiver=new Receiver();
receiver.listen();
}
*/
}
}
Jeg har prøvet at køre 2 * AppletCom med de 2 argumenter, og det virker også fint.
Problemmet opstår når jeg kun sender på porten.
(og lytter fra appleten)
Nogen ideer?