Tell me more ×
Stack Overflow is a question and answer site for professional and enthusiast programmers. It's 100% free, no registration required.
java.net.SocketException: Connection reset by peer: socket write error
    at java.net.SocketOutputStream.socketWrite0(Native Method)
    at java.net.SocketOutputStream.socketWrite(Unknown Source)
    at java.net.SocketOutputStream.write(Unknown Source)
    at java.io.DataOutputStream.write(Unknown Source)
    at java.io.DataOutputStream.writeUTF(Unknown Source)
    at java.io.DataOutputStream.writeUTF(Unknown Source)
    at SignUp.setUser(SignUp.java:225)
    at SignUp.jButton1_actionPerformed(SignUp.java:207)
    at SignUp.access$3(SignUp.java:201)
    at SignUp$4.actionPerformed(SignUp.java:135)
    at javax.swing.AbstractButton.fireActionPerformed(Unknown Source)
    at javax.swing.AbstractButton$Handler.actionPerformed(Unknown Source)
    at javax.swing.DefaultButtonModel.fireActionPerformed(Unknown Source)
    at javax.swing.DefaultButtonModel.setPressed(Unknown Source)
    at javax.swing.plaf.basic.BasicButtonListener.mouseReleased(Unknown Source)
    at java.awt.Component.processMouseEvent(Unknown Source)
    at javax.swing.JComponent.processMouseEvent(Unknown Source)
    at java.awt.Component.processEvent(Unknown Source)
    at java.awt.Container.processEvent(Unknown Source)
    at java.awt.Component.dispatchEventImpl(Unknown Source)
    at java.awt.Container.dispatchEventImpl(Unknown Source)
    at java.awt.Component.dispatchEvent(Unknown Source)
    at java.awt.LightweightDispatcher.retargetMouseEvent(Unknown Source)
    at java.awt.LightweightDispatcher.processMouseEvent(Unknown Source)
    at java.awt.LightweightDispatcher.dispatchEvent(Unknown Source)
    at java.awt.Container.dispatchEventImpl(Unknown Source)
    at java.awt.Window.dispatchEventImpl(Unknown Source)
    at java.awt.Component.dispatchEvent(Unknown Source)
    at java.awt.EventQueue.dispatchEventImpl(Unknown Source)
    at java.awt.EventQueue.access$200(Unknown Source)
    at java.awt.EventQueue$3.run(Unknown Source)
    at java.awt.EventQueue$3.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
    at java.awt.EventQueue$4.run(Unknown Source)
    at java.awt.EventQueue$4.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.security.ProtectionDomain$1.doIntersectionPrivilege(Unknown Source)
    at java.awt.EventQueue.dispatchEvent(Unknown Source)
    at java.awt.EventDispatchThread.pumpOneEventForFilters(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForFilter(Unknown Source)
    at java.awt.EventDispatchThread.pumpEventsForHierarchy(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.pumpEvents(Unknown Source)
    at java.awt.EventDispatchThread.run(Unknown Source)

Signup.java

/****************************************************************/
/*                      SignUp                              */
/*                                                              */
/****************************************************************/
import java.awt.*;
import java.awt.event.*;
import java.io.DataInputStream;
import java.io.DataOutputStream;
import java.net.Socket;

import javax.swing.*;

/**
 * Summary description for SignUp
 * 
 */
public class SignUp extends JFrame {
    // Variables declaration
    private JLabel jLabel1;

    private JLabel jLabel2;

    private JLabel jLabel3;

    private JLabel jLabel4;

    private JTextField jTextField1;

    private JTextField jTextField2;

    private JTextField jTextField3;

    private JButton jButton1;

    private JButton jButton2;

    private JPanel contentPane;

    private String username;

    private String password;

    private String port;

    private Socket socket;

    private DataOutputStream dos;

    private DataInputStream dis;

    private ImageIcon image1;

    // End of variables declaration

    public SignUp() {
        super();
        initializeComponent();
        //
        // TODO: Add any constructor code after initializeComponent call
        //

        this.setVisible(true);
    }

    /**
     * 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 Windows Form Designer. Otherwise, retrieving design
     * might not work properly. Tip: If you must revise this method, please
     * backup this GUI file for JFrameBuilder to retrieve your design properly
     * in future, before revising this method.
     */
    private void initializeComponent() {
        image1 = new ImageIcon("SIGNUP.jpg");
        jLabel1 = new JLabel();
        jLabel2 = new JLabel();
        jLabel3 = new JLabel();
        jLabel4 = new JLabel(image1);
        jTextField1 = new JTextField();
        jTextField2 = new JTextField();
        jTextField3 = new JTextField();
        jButton1 = new JButton();
        jButton2 = new JButton();
        contentPane = (JPanel) this.getContentPane();

        //
        // jLabel1
        //
        jLabel1.setText("NAME");
        //
        // jLabel2
        //
        jLabel2.setText("PASSWORD");
        //
        // jLabel3
        //
        jLabel3.setText("PORT");
        //
        // jLabel4
        //
        //jLabel4.setText("jLabel4");
        //
        // jTextField1
        //
        jTextField1.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                jTextField1_actionPerformed(e);
            }

        });
        //
        // jTextField2
        //
        jTextField2.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                jTextField2_actionPerformed(e);
            }

        });
        //
        // jTextField3
        //
        jTextField3.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                jTextField3_actionPerformed(e);
            }

        });
        //
        // jButton1
        //
        jButton1.setText("SUBMIT");
        jButton1.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                jButton1_actionPerformed(e);
            }

        });
        //
        // jButton2
        //
        jButton2.setText("RESET");
        jButton2.addActionListener(new ActionListener() {
            public void actionPerformed(ActionEvent e) {
                jButton2_actionPerformed(e);
            }

        });
        //
        // contentPane
        //
        contentPane.setLayout(null);
        addComponent(contentPane, jLabel1, 55, 100, 100, 40);
        addComponent(contentPane, jLabel2, 55, 157, 100, 40);
        addComponent(contentPane, jLabel3, 55, 210, 100, 40);
        addComponent(contentPane, jLabel4, 25, 10, 300, 75);
        addComponent(contentPane, jTextField1, 189, 99, 120, 40);
        addComponent(contentPane, jTextField2, 188, 153, 120, 40);
        addComponent(contentPane, jTextField3, 190, 209, 120, 40);
        addComponent(contentPane, jButton1, 65, 267, 100, 40);
        addComponent(contentPane, jButton2, 189, 265, 100, 40);
        //
        // SignUp
        //
        this.setTitle("SignUp - extends JFrame");
        this.setLocation(new Point(0, 0));
        this.setSize(new Dimension(370, 366));
    }

    /** Add Component Without a Layout Manager (Absolute Positioning) */
    private void addComponent(Container container, Component c, int x, int y,
            int width, int height) {
        c.setBounds(x, y, width, height);
        container.add(c);
    }

    //
    // TODO: Add any appropriate code in the following Event Handling Methods
    //
    private void jTextField1_actionPerformed(ActionEvent e) {
        System.out
                .println("\njTextField1_actionPerformed(ActionEvent e) called.");
        // TODO: Add any handling code here

    }

    private void jTextField2_actionPerformed(ActionEvent e) {
        System.out
                .println("\njTextField2_actionPerformed(ActionEvent e) called.");
        // TODO: Add any handling code here

    }

    private void jTextField3_actionPerformed(ActionEvent e) {
        System.out
                .println("\njTextField3_actionPerformed(ActionEvent e) called.");
        // TODO: Add any handling code here

    }

    private void jButton1_actionPerformed(ActionEvent e) {
        System.out.println("\njButton1_actionPerformed(ActionEvent e) called.");
        // TODO: Add any handling code here
        username = jTextField1.getText();
        password = jTextField2.getText();
        port = jTextField3.getText();
        setUser(username, password, port);

    }

    private void jButton2_actionPerformed(ActionEvent e) {
        System.out.println("\njButton2_actionPerformed(ActionEvent e) called.");
        // TODO: Add any handling code here

    }

    public void setUser(String username, String password, String port) {
        try {
            new source();
            if (true) {
                socket = new Socket("localhost", 3306);
                dos = new DataOutputStream(socket.getOutputStream());
                source.gdelete();
                dos.writeUTF("Signup");
                dos.writeUTF("user");
                dos.writeUTF("pass");
                dos.writeUTF(port);
                dis = new DataInputStream(socket.getInputStream());
                String response = dis.readUTF();
                if (response.equalsIgnoreCase("success")) {
                    System.out.println("Success...");
                } else {
                    System.out.println("Failure...");
                }
            }
        } catch (Exception e) {
            // TODO: handle exception
            e.printStackTrace();
        }

    }

    //
    // TODO: Add any method code to meet your needs in the following area
    //

    // ============================= Testing ================================//
    // = =//
    // = The following main method is just for testing this class you built.=//
    // = After testing,you may simply delete it. =//
    // ======================================================================//
    public static void main(String[] args) {
        JFrame.setDefaultLookAndFeelDecorated(true);
        JDialog.setDefaultLookAndFeelDecorated(true);
        /*try {
            UIManager
                    .setLookAndFeel("com.sun.java.swing.plaf.windows.WindowsLookAndFeel");
        } catch (Exception ex) {
            System.out.println("Failed loading L&F: ");
            System.out.println(ex);
        }*/
        new SignUp();
    }
    // = End of Testing =

}

Basically in my app am trying to create a sender and a receiver. But am not able to signup the user. keep getting this error have tried online solutions but its not helping.

socket = new Socket("localhost", 3306);//when i change the port number I get an error saying connection refused.
                    dos = new DataOutputStream(socket.getOutputStream());
                    source.gdelete();
                    dos.writeUTF("Signup");//the exception is raised the moment i hit the next line
                    dos.writeUTF("user");
                    dos.writeUTF("pass");
                    dos.writeUTF(port);
share|improve this question
1  
Finding a bug here is a nightmare. – sᴜʀᴇsʜ ᴀᴛᴛᴀ May 6 at 15:50
Do you know enough about TCP to understand the result if you monitor the traffic by a traffic analyzer? – Pietu1998 May 6 at 15:50
1  
Debugging means localizing the bug. Everything screams that you did not attempts. – Val May 6 at 15:51
1  
You posted a lot of code completely unrelated to your problem. Please shorten to the relevant parts! – JeffRSon May 6 at 15:51
1  
I can't even find a receiver in this code (though I might've missed it...). Shorten the code: you can at least get rid of all the UI stuff as that's not relevant to socketing. – Kninnug May 6 at 15:57
show 1 more comment

closed as too localized by EJP, rgettman, Steven Penny, Peter Ritchie, Fls'Zen May 7 at 2:37

This question is unlikely to help any future visitors; it is only relevant to a small geographic area, a specific moment in time, or an extraordinarily narrow situation that is not generally applicable to the worldwide audience of the internet. For help making this question more broadly applicable, visit the help center.If this question can be reworded to fit the rules in the help center, please edit the question.

2 Answers

Connection reset by peer generally means the program handling the remote end of the TCP connection has crashed or exited without closing its end of the socket. In this case, "the remote end of the TCP connection" is whatever server you are connecting to at localhost:3306.

Some of the code that you included in an early revision of this question suggests that there is a MySQL server running on localhost:3306, yet in Signup() you are making a direct TCP connection to that port and writing data to the socket, instead of using JDBC. I suspect the problem is that you're connecting to a MySQL server, and it is getting data from your program which doesn't match what it expects to get from a client, and it is dropping the connection resulting in the "connection reset" message.

If you want to communicate with a MySQL server, you should be using JDBC and a MySQL driver. Here is an example of using JDBC to communicate with a MySQL Server. Pay special attention to the readDataBase() function in the example; it shows the correct way to connect to the server.

share|improve this answer

The usual cause for this exception is writing to a connection that has already been closed by the peer. In other words, an application protocol error. As you appear to be writing directly to a MySQL port, that's not surprising. Use JDBC.

Other possibilities include a remote application crash, firewall, cable pull, etc.

share|improve this answer

Not the answer you're looking for? Browse other questions tagged or ask your own question.