Användarprofil

Uppgifter
Användarnamn
Email
Besök -
Hemsida Ingen
Plats (stad)
Senaste besök 01:00 - 1:a Januari 1970
Poster i forumet
Varningar
Grupp
Medlem sedan 01:00 - 1:a Januari 1970
Artiklar och filer
Den här användaren har inga artiklar eller filer

Avatar


Presentation av

Den här användaren har inte skapat någon personlig presentation.

Senaste inläggen i forumet

Java:Kopplas den inte upp till servern!?
Hej igen...
Jag debuggade (första gången så jag lärde mig nåt nytt) och jag måste göra om programmet en del... Trådarna nås inte. Jag får kämpa vidare...
Men tack! Jag kom vidare!

Postad 09:24 - 10:e November 2007
Java:Kopplas den inte upp till servern!?
Hej

Jag har kämpat med en chat hur länge som helst nu känns det. Det är ett enkelt chattprogram!Jag har 2 koder jag har skrivit. Varav en som inte kopplar up sig till servern!
Vet inte riktigt vad jag ska göra nu så jag testar med detta....

Den är multitrådad (eller ska vara..). Men klassen SocketThread verkar inte funka! I main tar jag fram host och hostnamn och sen vill jag skicka de till SocketThread... men det funkar som sagt inte. Och det spelar ingen roll om jag försöker anroppa Threaden för antingen blir det ngen skillnad eller så funkar det inte beroende varifrån jag anroppar.

Här är programmet om någon känner att de har lust att kllura lite.... Grejen är den att det fortfarande inte går att chatta med någon heller. ,,ven om den kopplas!


Hälsningar
(programmet nedan har säkert kompileringsfel-det beror på } eller den andra tråden som borde vara lätt att ta bort.... men jag söker tips påp hur jag ska tacka socketthreaden....)

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


/**
  • GUI till Chatklient
*/
public class Multichat extends JFrame implements ActionListener{

Socket s;
PrintWriter out;
JTextArea textLog;
JTextField sendTextField;
String argone;
Integer arg;
/**
  • Skapa ett grnssnitt
*/

Multichat(String argone, Integer arg){
    this.argone=argone;
    this.arg=arg;
    getContentPane().setLayout( new BorderLayout(5,5) );
    setBackground(Color.lightGray);
    
    // vre delen av fnstret, Norr
    JPanel northPanel = new JPanel();
    northPanel.setLayout(new BorderLayout());
    getContentPane().add(northPanel, BorderLayout.NORTH);
    
    
    // Mitten av fnstret, Center
    textLog = new JTextArea();
    JScrollPane textScrollPane = new JScrollPane(textLog);
    getContentPane().add(textScrollPane, BorderLayout.CENTER);
    
    // Nedre delen av fnstret, South
    JPanel southPanel = new JPanel();
    southPanel.setLayout(new BorderLayout());

    getContentPane().add(southPanel, BorderLayout.SOUTH);
    
    sendTextField = new JTextField();
    sendTextField.addActionListener(this);
    southPanel.add(sendTextField, BorderLayout.CENTER);
    
    sendTextField.requestFocus();
    setSize(400,250);
    setVisible(true);
    setDefaultCloseOperation(EXIT_ON_CLOSE);
}


public void actionPerformed(ActionEvent e) {
     if ( e.getSource() == sendTextField) {
        textLog.append( sendTextField.getText() + " \n");    
        sendTextField.setText(" ");
     SocketThread st=new SocketThread(argone, arg);

     }
}

class SocketThread extends Thread {
    Integer arg;
    String argone;
    Socket socket = null;
    PrintWriter out = null;
    BufferedReader in = null;
    

    public SocketThread(String argone, Integer arg){
     start();    
     this.arg=arg;
     this.argone=argone;    
    }
    
     public void run(){
        try {
         socket = new Socket(argone,arg);
         out=new PrintWriter (socket.getOutputStream(), true);
         in = new BufferedReader(new InputStreamReader(socket.getInputStream()));
         BufferedReader stdIn=new BufferedReader(new InputStreamReader(System.in));
         String userInput;
        
         while(( userInput=stdIn.readLine()) !=null){
            out.println (userInput);
            System.out.println("echo: "+ in.readLine());
    
    
         }
         out.close();
         in.close();
         stdIn.close();
         socket.close();
        
        } catch (UnknownHostException e) {
         System.err.println("Knner inte till host:" + argone);
         System.exit(1);
        
        } catch (IOException e) {
         System.err.println("Kan inte lsa-skriva frn: " + argone);
         System.exit(1);
        }
     }

/**
  • Trd som lyssnar p meddelanden frn servern och presenterar dem i textarean.
*/
class ResponseThread extends Thread{
String message;

/**
  • Lyssnar p meddelanden och skriver ut text
*/
public void run() {
try {
BufferedReader in = new BufferedReader(new InputStreamReader(s.getInputStream()));
while (true) {
message = in.readLine();
textLog.append(message + "");

}
}
catch (IOException e) {
System.out.println("Fel: " + e);
}
}
}





public static void main (String[]args){
    
    Integer arg;
    String argone;
    String argtwo;
    String hostname;
    Integer port;    
    Socket socket = null;
    PrintWriter out = null;
    BufferedReader in = null;
    
    
    if (args.length == 2){
     argone = args[0];
     try {
        //arg=Integer.parseInt(args[1]);
        arg = Integer.valueOf(args[1]).intValue();
     }    
     catch (NumberFormatException e) {
        System.out.println(e);
     }
    }
    
    
    else {    
     if (args.length == 1){
        argone = args[0];
        arg = 2000;
     }
    
     else {
        argone="127.0.0.1";
        arg=2000;
     }
    
    
    Multichat m =new Multichat (argone, arg);
    m.setTitle("Chat klient, Server: "+argone+"Port: "+arg+".");     
    }
}
}


Postad 12:55 - 9:e November 2007
java (host och port-problem)
Tack...
tyvärr funka det inte denna gång... jag får kolla igenom och återkomma om jag nte kokmmer påp felet!

Postad 23:16 - 7:e November 2007
java (host och port-problem)
tack! Det var ju grymt bra!

Det är bara en grej som inte funkar nu som jag tror har med omvandlingen från string till int. (det var alltså den som jag trodde fungerade förr):
java Client <host> <port>

Här är omvandlingen. Vad är felet?
String argone;
String argtwo;
Integer arg;
(arg och argone skickar jag till socketen)
    if (args.length == 2){
     argone = args[0];
     argtwo = args[1];
     try {
         arg = Integer.valueOf(argtwo).intValue();
catch (NumberFormatException e) {
        System.out.println(e);
        }
}

Postad 22:32 - 7:e November 2007
java (host och port-problem)
Hej
Jag har en chat klient skriven i java.. den ska kunna startas på alla dessa 3 sätt men just nu kan jag bara köra den med kommandot
java Client <host> <port>

Hur löser jag detta (gärna på ett lätt sätt):)?

Chat-klienten ska gå att startas på tre sätt:

java Client (då ska host default bli xxx.x.x.x och port default bli xxxx)
java Client <host> (då ska port default bli xxxx)

java Client <host> <port>




Postad 16:25 - 7:e November 2007

Skicka meddelande
Läs s blog