Socket

21 respostas
A

Sou novo em java e precisava de um determinado codigo o qual nao conssigo fazer de jeito nenhum

eu precisa de uma classe Client que faça conexao com servidor pela porta 12666

e um applet com um botao que quando apertado ele envia essa seguint saida para o printwriter

out.println("\n");

out.println(message\n);

out.println("" + header + “\n);

out.println("" + message + “\n);

out.println("" + number + “\n);

out.println("" + ID + “\n);

out.println("\n");

out.flush();

des de ja Obrigado agraeço mesmo se nao poderem me ajudar

21 Respostas

panngo

Esse printWriter é o stream de saída que você abriu com o servidor que conectou?
Coloque o código que você fez para vermos o que está errado.

A

Esse código junto com um applet envia mensagem para um pager essa e a parte do servidor ela ta muito bagunçada por isso que eu queria uma do zero mas nao conssegui fazer

import OAJUtil.*;
import java.io.*;
import java.net.*;
public class Client implements JatConstants
{
   static ServerSocket serverSocket = null;
   static Socket clientSocket = null;
   public static PrintWriter out = null;

   class ipClient extends Thread
   {
      private static final int MAXRCVLENGTH = 512;
      BufferedReader in = null;

      private String parseString(String rcvbuf, int offset)
      {
         String retval = "";
         int i = offset;
         while ((rcvbuf.charAt(i) != '<') && (i < rcvbuf.length())) {
            retval += rcvbuf.charAt(i++);
         }
         return retval;
      }

      public void run()
      {
         try {

            try {
               serverSocket = new ServerSocket(12666);
            } catch (IOException ioe) {
               JatLog.writePermLog("Could not listen on port: 12666. " + ioe);
               System.exit(1);
            }

            try {
               clientSocket = serverSocket.accept();
            } catch (IOException ioe) {
               JatLog.writePermLog("Accept failed. " + ioe);
               System.exit(1);
            }

            try {
               out = new PrintWriter(clientSocket.getOutputStream(), true);
               in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
            } catch (IOException ioe) {
               JatLog.writePermLog("Init IP failed" + ioe);
            }

            String receive = "", type = "", value = "";
            short id;
            JatMessage message = null;
            while (true) {
               id = 0;
               type = "";
               value = "";
               if (in.readLine().startsWith("<MSG>")) {
                  do {
                     receive = in.readLine();
                     if (receive.startsWith("<TYPE>")) {
                        type = parseString(receive, 6);
                        if (type.equalsIgnoreCase("message")) {
                           JatLog.writeTempLog("Message created");
                           message = new JatMessage(USER_RESPONSE_NONE);
                           message.setCompletion();
                        }
                     } else if (receive.startsWith("<HDR>")) {
                        value = parseString(receive, 5);
                        if (type.equalsIgnoreCase("message")) {
                           JatLog.writeTempLog("Setting header: " + value);
                           message.setSubject(value);
                        }
                     } else if (receive.startsWith("<BODY>")) {
                        value = parseString(receive, 6);
                        if (type.equalsIgnoreCase("message")) {
                           JatLog.writeTempLog("Setting body: " + value);
                           message.setBody(value);
                        }
                     } else if (receive.startsWith("<DEST>")) {
                        value = parseString(receive, 6);
                        if (type.equalsIgnoreCase("message")) {
                           JatLog.writeTempLog("Setting destination: " + value);
                           message.setCallNumber(value);
                        }
                     } else if (receive.startsWith("<ID>")) {
                        value = parseString(receive, 4);
                        if (type.equalsIgnoreCase("message")) {
                           id = Short.valueOf(value).shortValue();
                        }
                     } else if (receive.startsWith("</MSG>")) {
                        JatLog.writeTempLog("Message creation finished");
                        if (type.equalsIgnoreCase("message")) {
                           JatLog.writeTempLog("Sent message with id: " + message.send(id) + " from Java, refID: " + message.getRefID() );
                        }
                     } else {
                        JatLog.writeTempLog("ipClient received: " + receive);
                     }

                  } while ( !receive.startsWith("</MSG>") );
               }
            }
         } catch (Exception e) {
            JatLog.writePermLog("Error initiating IP communication: " + e);
         }
         try {
            in.close();
            out.close();
            clientSocket.close();
            serverSocket.close();
         } catch (IOException ioe) {
            JatLog.writePermLog("closeIP failed " + ioe);
         }
         return;    
      }
   }

   public static void main(String args[])
   {
      Client cli  = new Client();
      ipClient itst = cli.new ipClient();
      JatSystem tester;
      try{
         tester = JatSystem.createJatSystem("3.00");
      } catch (Exception e)
      {
         JatLog.writeTempLog(e.getMessage());
         return;
      }
      try{
         MyJatMessageHandler msgHandler = new MyJatMessageHandler();
         tester.addService(msgHandler);
      } catch (Exception e)
      {
         JatLog.writeTempLog("MessageHandler: " + e.getMessage());
      }
      try{
         MyJatMessageConfHandler msgConfHandler = new MyJatMessageConfHandler();
         tester.addService(msgConfHandler);
      } catch (Exception e)
      {
         JatLog.writeTempLog("MessageConfHandler: " + e.getMessage());
      }
      try{
         MyJatMessageConfRespHandler msgConfRespHandler = new MyJatMessageConfRespHandler();
         tester.addService(msgConfRespHandler);
      } catch (Exception e)
      {
         JatLog.writeTempLog("MessageConfRespHandler: " + e.getMessage());
      }
      try{
         MyJatIMHandler IMHandler = new MyJatIMHandler();
         tester.addService(IMHandler);
      } catch (Exception e)
      {
         JatLog.writeTempLog("IMHandler: " + e.getMessage());
      }
      try{
         MyJatIMRespHandler IMRespHandler = new MyJatIMRespHandler();
         tester.addService(IMRespHandler);
      } catch (Exception e)
      {
         JatLog.writeTempLog("IMRespHandler: " + e.getMessage());
      }
      try{
         tester.execute();                
      } catch (Exception e)
      {
         JatLog.writeTempLog("Start system: " + e.getMessage());
         return;
      }

      JatLog.writeTempLog("System ready.. waiting for event...");
      itst.start();
   }
}
A

E Esse é o applet ele envia mensagens soh na primeira conexao quando fecho e abro de novo ele nao envia mais perde a conexao

import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.net.*;

public class oajApplet extends Applet implements ActionListener
{
   static Socket clientSocket = null;
   public static PrintWriter out = null;
   public static BufferedReader in = null;

   private class rcvAreaThread extends Thread
   {
      private rcvTextArea rcvArea;
      boolean running = true;
      

      //Constructor rcvAreaThread the thread
      public rcvAreaThread(int rows, int cols)
      {
         super();        
         rcvArea = new rcvTextArea(rows, cols);
      }

      //Funciton to stop the thread
      public void kill()
      {
         running = false;
      }

      //The main function in the thread.
      public void run()
      {
         while (running)
         {
            try
            {
               rcvArea.readEvent(); //Read stock from Saleserver
            } catch (Exception e)
            {
               e.printStackTrace();
               break;
            }
         }
      }

      //Returns the current stock
      public rcvTextArea getEvent()
      {        
         return rcvArea;
      }
   }


   private class rcvTextArea extends TextArea
   {
      boolean disconnect = false;

      //Constructor for the class
      public rcvTextArea(int rows, int cols)
      {
         super(rows, cols);
      } 

      private String parseString(String rcvbuf, int offset)
      {
         String retval = "";
         int i = offset;
         while ((rcvbuf.charAt(i) != '<') && (i < rcvbuf.length())) {
            retval += rcvbuf.charAt(i++);
         }
         return retval;
      }

      //Read current stock for specified type of goods, and update the textfield in the GUI
      public void readEvent() throws Exception
      {
         String receive = "", type = "", value = "";
         while (true) {
            type = "";
            value = "";
            if (in.readLine().startsWith("<MSG>")) {
               do {
                  receive = in.readLine();
                  if (receive.startsWith("<TYPE>")) {
                     type = parseString(receive, 6);
                     if (type.equalsIgnoreCase("message")) {
                        this.append("Message received, ");
                     }
                  } else if (receive.startsWith("<HDR>")) {
                     value = parseString(receive, 5);
                     if (type.equalsIgnoreCase("message")) {
                        this.append("Header: " + value + ", ");
                     }
                  } else if (receive.startsWith("<BODY>")) {
                     value = parseString(receive, 6);
                     if (type.equalsIgnoreCase("message")) {
                        this.append("Body: " + value + ", ");
                     }
                  } else if (receive.startsWith("<DEST>")) {
                     value = parseString(receive, 6);
                     if (type.equalsIgnoreCase("message")) {
                        this.append("Origin: " + value + ", ");
                     }
                  } else if (receive.startsWith("<ID>")) {
                     value = parseString(receive, 4);
                     if (type.equalsIgnoreCase("message")) {
                        this.append("ID: " + value + ", ");
                     }
                  } else if (receive.startsWith("<RID>")) {
                     value = parseString(receive, 5);
                     if (type.equalsIgnoreCase("message")) {
                        this.append("RefID: " + value + "\n");
                     }
                  }

               } while ( !receive.startsWith("</MSG>") );
            }
         }
      }
   }

   private Label incLabel = new Label("Incoming: ");
   private Label nrLabel = new Label("Number of events received: ");
   private Label createLabel = new Label("Create and Send message: ");
   private Label hdrLabel = new Label("Type header: ");
   private Label msgLabel = new Label("Type message: ");
   private Label destLabel = new Label("Type destination: ");
   private Label idLabel = new Label("Type ID (0 or empty for automatic): ");
   private TextField nrField = new TextField(5);
   private TextField hdrField = new TextField(35);
   private TextArea msgField = new TextArea(4, 35);    
   private TextField destField = new TextField(4);
   private TextField idField = new TextField("0", 8);    
   private Button createPag = new Button("Create Message");
   private Button quitApp = new Button("Quit");
   private Button sendMessage = new Button("Send Message");
   private Button cancelMessage = new Button("Cancel");
   private int i = 0;

   private Panel listenButtons = new Panel();
   private Panel messageButtons = new Panel();
   private Panel messageHdr = new Panel();
   private Panel messageMsg = new Panel();
   private Panel messageDest = new Panel();
   private Panel messageID = new Panel();

   private Frame f, f2;
   private GridBagLayout gridbag = new GridBagLayout();
   private GridBagConstraints constr = new GridBagConstraints();
   private GridBagLayout gridbagMessage = new GridBagLayout();
   private GridBagConstraints constrMessage = new GridBagConstraints();
   private rcvAreaThread incAreaThr;
   private rcvTextArea incArea;

   void ipInit()
   {
      try {
      	 
      	 
         clientSocket = new Socket(getCodeBase().getHost() , 12666);
         out = new PrintWriter(clientSocket.getOutputStream(), true);
         in = new BufferedReader(new InputStreamReader(clientSocket.getInputStream()));
      } catch ( Exception e )
      {
         incLabel.setText(e.toString());
      }
   }

   //Create login frame
   public void init()
   {
      ipInit();
      f2 = new Frame();
      f2.setLayout(gridbagMessage);

      constrMessage.gridx = 0;
      constrMessage.gridy = 0;
      constrMessage.gridwidth = 4;
      gridbagMessage.setConstraints(createLabel, constrMessage);
      f2.add(createLabel);

      constrMessage.gridx = 1;
      constrMessage.gridy = 1;
      constrMessage.gridwidth = 2;
      gridbagMessage.setConstraints(messageHdr, constrMessage);
      messageHdr.add(hdrLabel);        
      messageHdr.add(hdrField);
      f2.add(messageHdr);

      constrMessage.gridx = 0;
      constrMessage.gridy = 2;
      constrMessage.gridwidth = 4;
      constrMessage.gridheight = 4;
      gridbagMessage.setConstraints(messageMsg, constrMessage);
      messageMsg.add(msgLabel);        
      messageMsg.add(msgField);
      f2.add(messageMsg);

      constrMessage.gridx = 1;
      constrMessage.gridy = 6;
      constrMessage.gridwidth = 2;
      constrMessage.gridheight = 1;
      gridbagMessage.setConstraints(messageDest, constrMessage);
      messageDest.add(destLabel);        
      messageDest.add(destField);
      f2.add(messageDest);

      constrMessage.gridx = 1;
      constrMessage.gridy = 7;
      constrMessage.gridwidth = 2;
      gridbagMessage.setConstraints(messageID, constrMessage);
      messageID.add(idLabel);        
      messageID.add(idField);
      f2.add(messageID);

      constrMessage.gridx = 1;
      constrMessage.gridy = 8;
      constrMessage.gridwidth = 2;
      gridbagMessage.setConstraints(messageButtons, constrMessage);
      messageButtons.add(cancelMessage);
      messageButtons.add(sendMessage);
      cancelMessage.setActionCommand("Cancel");
      cancelMessage.addActionListener(this);    
      sendMessage.setActionCommand("Send");
      sendMessage.addActionListener(this);
      f2.add(messageButtons);

      f2.setSize(640, 480);
      f2.setVisible(true);
   }

   //Create frame for purchasing goods
   public void createMessage()
   {
      f2 = new Frame();
      f2.setLayout(gridbagMessage);

      constrMessage.gridx = 0;
      constrMessage.gridy = 0;
      constrMessage.gridwidth = 4;
      gridbagMessage.setConstraints(createLabel, constrMessage);
      f2.add(createLabel);

      constrMessage.gridx = 1;
      constrMessage.gridy = 1;
      constrMessage.gridwidth = 2;
      gridbagMessage.setConstraints(messageHdr, constrMessage);
      messageHdr.add(hdrLabel);        
      messageHdr.add(hdrField);
      f2.add(messageHdr);

      constrMessage.gridx = 0;
      constrMessage.gridy = 2;
      constrMessage.gridwidth = 4;
      constrMessage.gridheight = 4;
      gridbagMessage.setConstraints(messageMsg, constrMessage);
      messageMsg.add(msgLabel);        
      messageMsg.add(msgField);
      f2.add(messageMsg);

      constrMessage.gridx = 1;
      constrMessage.gridy = 6;
      constrMessage.gridwidth = 2;
      constrMessage.gridheight = 1;
      gridbagMessage.setConstraints(messageDest, constrMessage);
      messageDest.add(destLabel);        
      messageDest.add(destField);
      f2.add(messageDest);

      constrMessage.gridx = 1;
      constrMessage.gridy = 7;
      constrMessage.gridwidth = 2;
      gridbagMessage.setConstraints(messageID, constrMessage);
      messageID.add(idLabel);        
      messageID.add(idField);
      f2.add(messageID);

      constrMessage.gridx = 1;
      constrMessage.gridy = 8;
      constrMessage.gridwidth = 2;
      gridbagMessage.setConstraints(messageButtons, constrMessage);
      messageButtons.add(cancelMessage);
      messageButtons.add(sendMessage);
      cancelMessage.setActionCommand("Cancel");
      cancelMessage.addActionListener(this);    
      sendMessage.setActionCommand("Send");
      sendMessage.addActionListener(this);
      f2.add(messageButtons);

      f2.setSize(640, 480);
      f2.setVisible(true);

   }

   //To send a buy request to the Saleserver
   private void sendMessage()
   {
      short tst = 0;
      boolean send = true;;

      if (destField.getText().compareTo("") == 0) {
         createLabel.setText("Destination field cannot be empty");
         send = false;
      } else if (idField.getText().compareTo("") == 0) {
         tst = new Short(idField.getText()).shortValue(); 
         if (tst < 0) {
            createLabel.setText("ID must be set to a valid positive short value (0-32767)");
         }
         send = false;
      }
      if (send == true) {
         try {
            send(hdrField.getText(), msgField.getText(), destField.getText(), tst);
         } catch (Exception e) {
            createLabel.setText("Send message failed: " + e);
         }
      }
   }

   private void send(String header, String message, String number, short ID) throws Exception
   {
   	  
      out.println("<MSG>\n");
      out.println("<TYPE>message</TYPE>\n");
      out.println("<HDR>" + header + "</HDR>\n");
      out.println("<BODY>" + message + "</BODY>\n");
      out.println("<DEST>" + number + "</DEST>\n");
      out.println("<ID>" + ID + "</ID>\n");
      out.println("</MSG>\n");
      out.flush();
   }

   //To disconnect from the server and clear the current reservations.
   private void disconnect()
   {
      try {
         f.dispose(); //Dispose frame
         in.close();
         out.close();
         clientSocket.close();
         System.exit(0);
      } catch (Exception e)
      {
      }
   }

   //Eventhandler, handles what to do when a button is pushed.
   public void actionPerformed(ActionEvent event)
   {
      String happened = event.getActionCommand();        

      if (happened.equals("Create")){
         createMessage();
      } else if (happened.equals("Quit")){
         disconnect();
      } else if (happened.equals("Send")){
         sendMessage();
      } else if (happened.equals("Cancel")){
         f2.dispose();
         disconnect();
         
      }
   }

   //Print a string in the netscape window
   public void paint (Graphics message)
   {
      message.drawString("Application will open in a new window", 20, 20);
   }

}
panngo

Já me arrependi de ter pedido o código… guenta ai que vo fze um esqueminha legal pra vc…

A

hauahuahauhaua um pouquinho grande nhe

Poh Brigadao mesmo

panngo

Grande e bagunçado.

Classe para o server

package guj.scoket.server;

import java.io.IOException;
import java.net.ServerSocket;

public class Server implements Runnable{

    private ServerSocket server;
    private ServerListener listener;
    private boolean alive;

    public Server(ServerListener _listener, int port) throws IOException {
        server = new ServerSocket(port);
        listener = _listener;
        new Thread(this).start();
    }

    public void run() {
        alive = true;
        int erros = 0;
        while(alive) {
            try {
                listener.newConnection(server.accept());
                erros = 0;
            } catch (Exception e) {
                erros++;
                e.printStackTrace();
            }
            if(erros >= 10) {
                alive = false;
            }
        }
    }
}

Para cada conexão que entrar no server vc cria uma manager, que é a classe abaixo.

package guj.scoket;

import guj.scoket.server.ManagerListener;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.io.IOException;
import java.net.Socket;

public class Manager implements Runnable {

    private Socket socket;
    private DataOutputStream dos;
    private DataInputStream dis;

    private ManagerListener listener;

    public Manager(Socket socket, ManagerListener _listener) throws IOException {
        this.socket = socket;
        dos = new DataOutputStream(socket.getOutputStream());
        dis = new DataInputStream(socket.getInputStream());
        listener = _listener;
        new Thread(this).start();
    }

    public void run() {
        byte[] buffer = new byte[1024];
        int erros = 0;
        while (socket.isConnected()) {
            StringBuffer sb = new StringBuffer();
            try {
                while (dis.read(buffer) > 0) {
                    sb.append(new String(buffer).trim());
                }
                listener.received(sb.toString());
                erros = 0;
            } catch (Exception e) {
                erros++;
                e.printStackTrace();
            }
            if(erros >= 10) {
                try {socket.close();} catch (Exception e) {}
            }
        }
    }

    public void write(String send) throws IOException {
        dos.write(send.getBytes());
    }
}

Na parte do cliente você pode usar essa classe, “Manager” também criando pois como ele funciona com listeners, quando você receber ou quiser enviar alguma coisa pode fazer tanto para o client quanto para o sever.

A inteface ServerListener é um listener para receber eventos referentes ao server e o Manager listener para as conexões abertas do lado do server e as conexões criadas no lado do cliente.

package guj.scoket.server;

import java.net.Socket;


public interface ServerListener {

    public void newConnection(Socket client);

}

E

package guj.scoket.server;

public interface ManagerListener {

    public void received(String s);

}
A

Dersculpa eu ser muito leigo eu criei as duas classes que vc me mandou a server e a maneger

porem nenhuma das duas sao applet para que eu chame via visual no meu servidor

Desculpa mesmo sou novo em java estou no primeiro ano da facul e meu chefe ta coibrando algo parecido pra mim se vc pudesse me mandar esse documento zipado no meu email agradeceria de mais.

[email removido]

panngo

Então a idéia é vc colocar um atributo do tipo dessa classe dentro da sua classe applet.

adrieldri:
Dersculpa eu ser muito leigo eu criei as duas classes que vc me mandou a server e a maneger

porem nenhuma das duas sao applet para que eu chame via visual no meu servidor

Desculpa mesmo sou novo em java estou no primeiro ano da facul e meu chefe ta coibrando algo parecido pra mim se vc pudesse me mandar esse documento zipado no meu email agradeceria de mais.

[email removido]

A

Tipo a minha calsse principal que vai na pasta Client do meu servidor obrigatoriamente precisa ter public void main string args[]

poh to apanmhado pakas disso viu é foda nao ter o mesmo conhecimento que vc pra poder entender as dicas q vc manda

meu chefe mano fazer uma classe Client que conecte na porta 12666 e uma classe visual que apertando o botao envie aquela saida que eu te falei mas to des de manha e nao saiu nada se vc tiver algum projeto pronto similar quee eu possa estudar

Desculpa o tempo que estou fazendo vc perder

panngo

Na sua classe applet, faça ela implementar “ManagerListener”.
Declare um atributo do tipo Manager nela

private Manager manager;

No init ou no constructor da sua classe applet, onde você inicializa os outros atributos, inicie a manager tbem.

manager = new Manager(new Socket("endereço do server", 12666), this);

Pronto, você já está conectado com o servidor.
Quando clicar no botão que vai enviar a sua string

manager.write("O texto que você quer enviar");

adrieldri:
Tipo a minha calsse principal que vai na pasta Client do meu servidor obrigatoriamente precisa ter public void main string args[]

poh to apanmhado pakas disso viu é foda nao ter o mesmo conhecimento que vc pra poder entender as dicas q vc manda

meu chefe mano fazer uma classe Client que conecte na porta 12666 e uma classe visual que apertando o botao envie aquela saida que eu te falei mas to des de manha e nao saiu nada se vc tiver algum projeto pronto similar quee eu possa estudar

Desculpa o tempo que estou fazendo vc perder

panngo

Se tu não entender, desculpa cara mas estuda um pouquinho…

A

Nao blz entendi sim soh estou com problema nesse pacote que vc importou

import guj.scoket.server.ManagerListener; e no outro da classe aplet

import guj.scoket

como arrumo isso?

panngo

Isso não é import irmãozinho é package, se você está fazendo o projeto sem packages, que provavelmente deve estar, pode apagar essa linha do código que passei.

adrieldri:
Nao blz entendi sim soh estou com problema nesse pacote que vc importou

import guj.scoket.server.ManagerListener; e no outro da classe aplet

import guj.scoket

como arrumo isso?

A

Opa ja achei eles desculkpa o mal entendido vou tentar testar valeu

A

deu erro na hora de implementar o ManagerListener

[code]

public class TalkClientApplet extends Applet implements ManagerListener

A

Esta Assim minha classe visual ve se esta correta por favor

[code]

import guj.scoket.server.ManagerListener;
import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.net.*;

//the start of an applet - HelloWorld will be the executable class
//Extends applet means that you will build the code on the standard Applet class
public class TalkClientApplet extends Applet implements ManagerListener //implements ManagerListener
{
private Manager manager;
private Frame f, f2;
private Button sendMessage = new Button("Send Message");
//The method that will be automatically called when the applet is started
public void init()
{
try {
manager = new Manager(new Socket("192.168.0.89", 12666), this);
} catch (UnknownHostException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
f2 = new Frame();
f2.setLayout(null);
f2.add(sendMessage);
sendMessage.setSize(200,100);
sendMessage.setLocation(300,330);
sendMessage.setActionCommand("Send");
f2.setSize(640, 480);
sendMessage.setVisible(true);
f2.setVisible(true);
// It is required but does not need anything.
}



public void actionPerformed(ActionEvent event){

String happened = event.getActionCommand();

if (happened.equals("Send")){
try {
manager.write("O texto que você quer enviar");
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
//This method gets called when the applet is terminated
//That's when the user goes to another page or exits the browser.
public void stop()
{
// no actions needed here now.
}

//The standard method that you have to use to paint things on screen
//This overrides the empty Applet method, you can't called it "display" for example.

public void paint(Graphics g)
{
//method to draw text on screen
// String first, then x and y coordinate.

}

/* (non-Javadoc)
* @see guj.scoket.server.ManagerListener#received(java.lang.String)
*/
public void received(String s) {
// TODO Auto-generated method stub

}

}

A

Arrumando nao tinha fixidao o code

import guj.scoket.server.ManagerListener;
import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.net.*;


//the start of an applet - HelloWorld will be the executable class 
//Extends applet means that you will build the code on the standard Applet class 
public class TalkClientApplet  extends Applet implements ManagerListener //implements ManagerListener
{ 
	private Manager manager;
	private Frame f, f2;
	private Button sendMessage = new Button("Send Message");
//The method that will be automatically called  when the applet is started 
  public void init() 
  { 
  	try {
		manager = new Manager(new Socket("192.168.0.89", 12666), this);
	} catch (UnknownHostException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	} catch (IOException e) {
		// TODO Auto-generated catch block
		e.printStackTrace();
	}  
  	f2 = new Frame();
    f2.setLayout(null);
    f2.add(sendMessage);
    sendMessage.setSize(200,100);
    sendMessage.setLocation(300,330);
    sendMessage.setActionCommand("Send");
    f2.setSize(640, 480);
    sendMessage.setVisible(true);
    f2.setVisible(true);
// It is required but does not need anything. 
  } 
  
  
  
  public void actionPerformed(ActionEvent event){
  	
  	String happened = event.getActionCommand();
  	
  	if (happened.equals("Send")){
  		try {
			manager.write("O texto que você quer enviar");
		} catch (IOException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}  
  	}
  }
//This method gets called when the applet is terminated 
//That's when the user goes to another page or exits the browser. 
  public void stop() 
  { 
  // no actions needed here now. 
  } 


//The standard method that you have to use to paint things on screen 
//This overrides the empty Applet method, you can't called it "display" for example. 

  public void paint(Graphics g) 
  { 
//method to draw text on screen 
// String first, then x and y coordinate. 
   

  }



/* (non-Javadoc)
 * @see guj.scoket.server.ManagerListener#received(java.lang.String)
 */
public void received(String s) {
	// TODO Auto-generated method stub
	
} 

}
A

Desculpa ai pelo topico no avançado nao foi a intençao de fazer algo que nao se pode soh nao sei apagar poh

panngo

Deu erro pq vc tem que implementar o(s) método(s) da interface…

Que IDE vc usa pra programar??

A

eu uso o eclipse antigo

panngo

Instala o novo ai pow ou instala o netbeans

Deu certo ai??

Criado 11 de novembro de 2009
Ultima resposta 13 de nov. de 2009
Respostas 21
Participantes 2