Java套接字IP问题

时间:2018-09-05 18:29:01

标签: java sockets

我已经开发了一个简单的套接字服务器客户端应用程序。仅当我运行该项目时,它仅在该代码位于run方法中且该代码中已定义IP地址时才起作用。我已经找到了解决方法,可以让我自己输入IP,但是它非常有气质,并且经常会失败,但以下情况除外。

package nxs;

import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.net.Socket;
import javax.swing.JOptionPane;
import static nxs.nx.s;

/**
 *
* @author kyleg
*/
public class control extends javax.swing.JFrame {
static Socket s;


static DataOutputStream dout;
static DataInputStream din;
/**
 * Creates new form contol
 */
public control() {
    initComponents();
}

/**
 * This method is called from within the constructor to initialize the form.
 * WARNING: Do NOT modify this code. The content of this method is always
 * regenerated by the Form Editor.
 */
@SuppressWarnings("unchecked")
// <editor-fold defaultstate="collapsed" desc="Generated Code">                          
private void initComponents() {

    setDefaultCloseOperation(javax.swing.WindowConstants.EXIT_ON_CLOSE);

    javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
    getContentPane().setLayout(layout);
    layout.setHorizontalGroup(
        layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
        .addGap(0, 400, Short.MAX_VALUE)
    );
    layout.setVerticalGroup(
        layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
        .addGap(0, 300, Short.MAX_VALUE)
    );

    pack();
}// </editor-fold>                        

/**
 * @param args the command line arguments
 */
public static void main(String args[]) {
    /* Set the Nimbus look and feel */
    //<editor-fold defaultstate="collapsed" desc=" Look and feel setting code (optional) ">
    /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
     * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html 
     */
    try {
        for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
            if ("Nimbus".equals(info.getName())) {
                javax.swing.UIManager.setLookAndFeel(info.getClassName());
                break;
            }
        }
    } catch (ClassNotFoundException ex) {
        java.util.logging.Logger.getLogger(control.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
    } catch (InstantiationException ex) {
        java.util.logging.Logger.getLogger(control.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
    } catch (IllegalAccessException ex) {
        java.util.logging.Logger.getLogger(control.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
    } catch (javax.swing.UnsupportedLookAndFeelException ex) {
        java.util.logging.Logger.getLogger(control.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
    }
    //</editor-fold>
    //</editor-fold>

    /* Create and display the form */
    java.awt.EventQueue.invokeLater(new Runnable() {
        public void run() {
            new control().setVisible(true);
        }
    }); String msgin = "";
    String serverAddress = JOptionPane.showInputDialog(
        "Enter IP Address of a machine that is\n" +
        "running the date service on port 1201:");


  if(!serverAddress.equals("")){try{


        s = new Socket(serverAddress,1201);

        din = new DataInputStream(s.getInputStream());
        dout = new DataOutputStream(s.getOutputStream());


        while(!msgin.equals("exit")){

        msgin = din.readUTF();


        }



    }
    catch(Exception e){}}
}

// Variables declaration - do not modify                     
// End of variables declaration                   
}

例外:

  

线程“ AWT-EventQueue-0”中的异常java.lang.NullPointerException     在javax.swing.plaf.nimbus.NimbusStyle.validate(NimbusStyle.java:298)     在   javax.swing.plaf.nimbus.NimbusStyle.getValues(NimbusStyle.java:806)     在   javax.swing.plaf.nimbus.NimbusStyle.getInsets(NimbusStyle.java:485)     在   javax.swing.plaf.synth.SynthStyle.installDefaults(SynthStyle.java:913)     在   javax.swing.plaf.synth.SynthLookAndFeel.updateStyle(SynthLookAndFeel.java:265)     在   javax.swing.plaf.synth.SynthPanelUI.updateStyle(SynthPanelUI.java:117)     在   javax.swing.plaf.synth.SynthPanelUI.installDefaults(SynthPanelUI.java:100)     在   javax.swing.plaf.basic.BasicPanelUI.installUI(BasicPanelUI.java:56)     在   javax.swing.plaf.synth.SynthPanelUI.installUI(SynthPanelUI.java:62)     在javax.swing.JComponent.setUI(JComponent.java:666)在   javax.swing.JPanel.setUI(JPanel.java:153)在   javax.swing.JPanel.updateUI(JPanel.java:126)在   javax.swing.JPanel。(JPanel.java:86)在   javax.swing.JPanel。(JPanel.java:109)在   javax.swing.JPanel。(JPanel.java:117)在   javax.swing.JRootPane.createGlassPane(JRootPane.java:546)在   javax.swing.JRootPane。(JRootPane.java:366)在   javax.swing.JFrame.createRootPane(JFrame.java:286)在   javax.swing.JFrame.frameInit(JFrame.java:267)在   javax.swing.JFrame。(JFrame.java:190)在   nxs.control。(control.java:27)在   nxs.control $ 1.run(control.java:87)在   java.awt.event.InvocationEvent.dispatch(InvocationEvent.java:311)在   java.awt.EventQueue.dispatchEventImpl(EventQueue.java:756)在   java.awt.EventQueue.access $ 500(EventQueue.java:97)在   java.awt.EventQueue $ 3.run(EventQueue.java:709)在   java.awt.EventQueue $ 3.run(EventQueue.java:703)在   java.security.AccessController.doPrivileged(本机方法),位于   java.security.ProtectionDomain $ JavaSecurityAccessImpl.doIntersectionPrivilege(ProtectionDomain.java:80)     在java.awt.EventQueue.dispatchEvent(EventQueue.java:726)在   java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:201)     在   java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:116)     在   java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:105)     在   java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:101)     在   java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:93)     在java.awt.EventDispatchThread.run(EventDispatchThread.java:82)       nxs.control.main(control.java:95)处的线程“ main”中的异常java.lang.NullPointerException       C:\ Users \ kyleg \ AppData \ Local \ NetBeans \ Cache \ 8.2 \ executor-snippets \ run.xml:53:   返回的Java:1       失败(总时间:4秒)

0 个答案:

没有答案