Gostaria de pedir ajuda de vcs pois tneho um código que roda em um servidor da empresa a qual trabalho
Ele possui varias classe mas as 2 principais seria uma Applet e um CLient e eu gostaria de uma ajuda com o erro
Ao abrir pela primeira vez o meu programinha funciona e envia a mensagem que eu kero porem quando cliko no botao cancelar o programa sai e ao reconectar nele ele me acusa os seguintes erro
(“Erro conexao”) ao entrar
(“erro no Disconect”) ao sair
segue os códigos
Cliente
import OAJUtil.*;
import java.io.*;
import java.net.*;
import javax.swing.*;
import java.awt.*;
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++);
}
//JOptionPane.showMessageDialog(null, retval);
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);
System.exit(-1);
}
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();
}
}
Classe visual
import java.applet.Applet;
import java.awt.*;
import java.awt.event.*;
import java.io.*;
import java.net.*;
import javax.swing.*;
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);
JOptionPane.showMessageDialog(null , "superlativo");
}
//Funciton to stop the thread
public void kill()
{
running = false;
JOptionPane.showMessageDialog(null , "kill");
}
//The main function in the thread.
public void run()
{
while (running)
{
try
{
rcvArea.readEvent(); //Read stock from Saleserver
JOptionPane.showMessageDialog(null , "running true");
} catch (Exception e)
{
e.printStackTrace();
break;
}
}
}
//Returns the current stock
public rcvTextArea getEvent()
{
return rcvArea;
}
}
private class rcvTextArea extends TextArea
{
boolean disconnect = true;
//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++);
JOptionPane.showMessageDialog(null , "disconect1");
}
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("Numeros recebidos: ");
private Label createLabel = new Label("Net Driel ");
private Label hdrLabel = new Label("Titulo: ");
private Label msgLabel = new Label("Mensagem ");
private Label destLabel = new Label("Pager ");
private Label idLabel = new Label("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("NetDriel");
private Button quitApp = new Button("Quit");
private Button sendMessage = new Button("Enviar");
private Button cancelMessage = new Button("Cancelar");
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()));
JOptionPane.showMessageDialog(null , "Clientsocked");
} catch ( Exception e )
{
incLabel.setText(e.toString());
JOptionPane.showMessageDialog(null , "erro ao conectar");
System.exit(-1);
}
}
//Create login frame
public void init()
{
ipInit();
f = new Frame();
f.setLayout(gridbag);
constr.gridx = 0;
constr.gridy = 0;
constr.gridwidth = 2;
gridbag.setConstraints(incLabel, constr);
f.add(incLabel);
incAreaThr = new rcvAreaThread(30, 85);
incArea = incAreaThr.getEvent();
incArea.setEditable(false);
incArea.setText("Programa Desenvolvido pela equipe de Tecnologia da Eritel Data: 13/03/09");
incAreaThr.start();
constr.gridx = 0;
constr.gridy = 1;
constr.gridwidth = 2;
constr.gridheight = 10;
gridbag.setConstraints(incArea, constr);
f.add(incArea);
constr.gridx = 0;
constr.gridy = 12;
constr.gridwidth = 2;
constr.gridheight = 1;
gridbag.setConstraints(listenButtons, constr);
listenButtons.add(quitApp);
listenButtons.add(createPag);
quitApp.setActionCommand("Quit");
quitApp.addActionListener(this);
createPag.setActionCommand("Create");
createPag.addActionListener(this);
f.add(listenButtons);
f.setSize(800, 600);
f.setVisible(true);
}
//Create frame for purchasing goods
public void createMessage()
{
f2 = new Frame();
f2.setLayout(gridbagMessage);
f2.setBackground(Color.GREEN);
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("Preencha Pager");
JOptionPane.showMessageDialog(null , "Preencha Campo Pager ");
send = false;
} else if (idField.getText().compareTo("") == 0) {
tst = new Short(idField.getText()).shortValue();
if (tst < 0) {
//createLabel.setText("Erro ID(0-32767)");
JOptionPane.showMessageDialog(null , "Erro ID");
}
send = false;
}
if (send == true) {
try {
send(hdrField.getText(), msgField.getText(), destField.getText(), tst);
JOptionPane.showMessageDialog(null , "Mensagem Enviada");
} catch (Exception e) {
//createLabel.setText("Falha: " + e);
JOptionPane.showMessageDialog(null , "Deu o erro" + 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 servidor.
private void connect()
{
// clientSocket.connect();
}
private void disconnect()
{
try {
JOptionPane.showMessageDialog(null , "Programa Fechado");
f2.dispose();
f.dispose(); //Fecha frame
in.close();
out.close();
clientSocket.close();
System.exit(-1);
} catch (Exception e)
{
JOptionPane.showMessageDialog(null , "Erro no disconetc");
}
}
//Açao do botao.
public void actionPerformed(ActionEvent event)
{
String happened = event.getActionCommand();
if (happened.equals("Create")){
createMessage();
} else if (happened.equals("Quit")){
disconnect();
ipInit();
} else if (happened.equals("Send")){
sendMessage();
} else if (happened.equals("Cancel")){
// f2.dispose();
// f.dispose();
disconnect();
}
}
//Print a string in the netscape window
public void paint (Graphics message)
{
message.drawString("Bem vindo NetDriel", 20, 20);
}
}
por favor me ajudem
