如何使服务器/客户端接受更多的一个输入(c#/java)

本文关键字:输入 java 一个 客户 服务器 何使 客户端 端接 | 更新日期: 2023-09-27 18:13:01

这是服务器上的代码(c#):

private void Form1_Load(object sender, EventArgs e)
    {
        Thread service = new Thread((ThreadStart)delegate
        {
            IPAddress localAddr = IPAddress.Parse("127.0.0.1");
            TcpListener listener = new TcpListener(localAddr, 13235);
            listener.Start();
            Console.Write("Waiting for a connection... ");
            TcpClient client = listener.AcceptTcpClient();
            Console.WriteLine("Connected!");
            NetworkStream str = client.GetStream();
            byte[] bytes5 = new byte[client.ReceiveBufferSize];

            str.Read(bytes5, 0, (int)client.ReceiveBufferSize);
            string returndata = Encoding.UTF8.GetString(bytes5);
            Console.WriteLine("ewwww hone :" + returndata);
            label1.Text = returndata;
            client.Close();
        });
        service.Start();
    }
}

Java客户端:

private void jButton1ActionPerformed(java.awt.event.ActionEvent evt) {
    DataOutputStream os = null;
    DataInputStream is = null;
    int port = 13235;
    System.out.println("SocketClient initialized 'n");
    try {
        InetAddress address = InetAddress.getByName("127.0.0.1");
        Socket connection = new Socket(address, port);
        os = new DataOutputStream(connection.getOutputStream());
        is = new DataInputStream(connection.getInputStream());
        os.writeBytes(jTextField1.getText()); 
        System.out.println(jTextField1.getText());
    }
    catch (IOException f) {
        System.out.println("IOException: " + f);
    }
    catch (Exception g) {
        System.out.println("Exception: " + g);
    }
}

我的程序工作良好,只有第一次我点击按钮,但之后我没有得到任何东西!!知道怎么解决吗,或者是哪里出了问题?我需要的是,当我点击那个按钮(在客户端),我需要得到它在服务器端…

如何使服务器/客户端接受更多的一个输入(c#/java)

看一下MSDN上TcpListener的示例代码:http://msdn.microsoft.com/en-us/library/system.net.sockets.tcplistener.aspx

您的代码中缺少while循环。在第一次连接之后,它调用.close()然后退出线程。它应该循环回去,开始监听下一个连接。

似乎您没有关闭连接/流,在第二次单击时,您再次打开套接字连接。您可以在每次获得点击时关闭套接字连接。或者保持套接字打开,并且在每次单击发生时不重新初始化它。

您需要将您的读写流代码放在while loop中以进行多次读写