Java和C之间的套接字连接#

Java和C之间的套接字连接#,java,c#,sockets,Java,C#,Sockets,当我尝试用套接字发送或接收消息时,我无法做到这一点,在java中,它告诉我通信被拒绝,而在c中,它告诉我端口已经被使用,在java中,我通过单击按钮发送消息,我通过线程接收消息,在c中,以类似的方式,如果你能告诉我出了什么问题,我会非常感激,我已经尝试了所有的方法,但是我找不到答案,谢谢 爪哇 C# 看起来您的两个应用程序都试图在同一个套接字上侦听-这不会像这样工作-一侧必须侦听套接字,另一侧应尝试连接到itOh,谢谢!,我已经修复了这个错误,并使c#只能接收消息,但是当java发送消息时,我得

当我尝试用套接字发送或接收消息时,我无法做到这一点,在java中,它告诉我通信被拒绝,而在c中,它告诉我端口已经被使用,在java中,我通过单击按钮发送消息,我通过线程接收消息,在c中,以类似的方式,如果你能告诉我出了什么问题,我会非常感激,我已经尝试了所有的方法,但是我找不到答案,谢谢

爪哇

C#


看起来您的两个应用程序都试图在同一个套接字上侦听-这不会像这样工作-一侧必须侦听套接字,另一侧应尝试连接到itOh,谢谢!,我已经修复了这个错误,并使c#只能接收消息,但是当java发送消息时,我得到以下错误java.net.ConnectException:Connection拒绝:connect。你知道怎么解决吗?
private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {                                         
        String mensaje = jTextField1.getText();
        System.out.println(mensaje);
        byte men[] = mensaje.getBytes();
        Socket socket = null;
        ObjectOutputStream out = null;
        try {
            socket = new Socket("127.0.0.1", 7000);
            out = new ObjectOutputStream(socket.getOutputStream());
            out.write(men, 0, men.length);
            out.close();
            socket.close();;
        } catch (Exception e) {
            e.printStackTrace();
        }
    }
class HiloReceptor extends Thread {

        @Override
        public void run() {
            super.run();
            while (true) {
                try {
                    ServerSocket ss = new ServerSocket(7000);
                    Socket socketCanal = ss.accept();
                    ObjectInputStream ois = new ObjectInputStream(socketCanal.getInputStream());
                    byte[] mensaje = new byte[1024];
                    ois.read(mensaje, 0, mensaje.length);
                    String msgRecibido = new String(mensaje, 0 ,mensaje.length);
                    System.out.println(msgRecibido);
                    jLabel1.setText("Mensaje recibido: " + msgRecibido);
                    ois.close();
                    socketCanal.close();
                    ss.close();
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
        }

    }
private void button1_Click(object sender, EventArgs e)
        {
            try
            {
                String mensaje = textBox1.Text;
                Console.WriteLine(mensaje);
                byte[] men = UTF8Encoding.UTF8.GetBytes(mensaje);
                IPAddress ip = IPAddress.Parse("127.0.0.1");
                IPEndPoint endp = new IPEndPoint(ip, 7000);
                TcpListener tcpListener = new TcpListener(endp);
                tcpListener.Start();
                //Socket socket = new Socket(ip.AddressFamily, SocketType.Stream, ProtocolType.Tcp);
                Socket socket = tcpListener.AcceptSocket();
                //socket.Connect(endp);

                socket.Send(men, men.Length, 0);

                socket.Close();
            }
            catch (Exception ex)
            {
                MessageBox.Show("Error al enviar.\n" + ex);
            }
        }
private void backgroundWorker1_DoWork(object sender, DoWorkEventArgs e)
        {
            while (!backgroundWorker1.CancellationPending)
            {
                try
                {
                    Console.WriteLine("entre al ciclo");
                    IPAddress ip = IPAddress.Parse("127.0.0.1");
                    IPEndPoint endp = new IPEndPoint(ip, 7000);

                    Socket s = new Socket(ip.AddressFamily, SocketType.Stream, ProtocolType.Tcp);

                    s.Bind(endp);

                    s.Listen(1);

                    Socket canal = s.Accept();

                    byte[] buffer = new byte[1024];

                    msg = "";

                    while (canal.Receive(buffer, buffer.Length, 0) > 0)
                    {
                        msg += Encoding.UTF8.GetString(buffer);
                    }
                    Console.WriteLine(msg);
                    backgroundWorker1.ReportProgress(1);

                    canal.Close();
                    s.Close();
                }
                catch (Exception ex)
                {
                    Console.WriteLine("Error.\n"+ ex);
                }
            }
        }

        private void backgroundWorker1_ProgressChanged(object sender, ProgressChangedEventArgs e)
        {
            if (e.ProgressPercentage == 1)
            {
                label1.Text = "Mensaje recibido: " + msg;
            }
        }