Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/395.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 我能';t将字符串从服务器发送到客户端_Java_Swing - Fatal编程技术网

Java 我能';t将字符串从服务器发送到客户端

Java 我能';t将字符串从服务器发送到客户端,java,swing,Java,Swing,我是编程新手。我不能将字符串从服务器发送到客户端,但我可以将表单客户端发送到服务器,但只能发送一个字符串。当我点击客户端程序中的“发送”按钮时,它会发送字符串,但在这之后它就不可用了。服务器程序中的“发送”按钮不起作用。代码如下: 客户端程序: import java.io.*; import java.net.*; import javax.swing.*; import java.awt.event.*; import java.awt.BorderLayout; public class

我是编程新手。我不能将字符串从服务器发送到客户端,但我可以将表单客户端发送到服务器,但只能发送一个字符串。当我点击客户端程序中的“发送”按钮时,它会发送字符串,但在这之后它就不可用了。服务器程序中的“发送”按钮不起作用。代码如下:

客户端程序:

import java.io.*;
import java.net.*;
import javax.swing.*;
import java.awt.event.*;
import java.awt.BorderLayout;

public class Client extends JFrame {

private final int WIDTH = 310;
private final int HEIGHT=300;

private JPanel panel;
private JButton btn;
private JTextArea txt;
private JLabel label;
private JTextField field;   

public Client(){

    setSize(WIDTH,HEIGHT);
    setTitle("Client");
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    setLayout(new BorderLayout());
    btn = new JButton("Send");
    txt = new JTextArea();
    field=new JTextField(20);

    btn.addActionListener(new btnListener());

    add(new JScrollPane(txt), BorderLayout.CENTER);
    add(btn, BorderLayout.SOUTH);
    add (field, BorderLayout.NORTH);
    setVisible(true);
}

public static void main(String a[]) throws IOException
{

    Client c =  new Clientt();

}

 private class btnListener implements ActionListener{
  @Override
 public void actionPerformed(ActionEvent ev)
{

try{

            Socket sc = new Socket("localhost",5555);
    DataOutputStream out=new DataOutputStream(sc.getOutputStream());
    DataInputStream in =new DataInputStream(sc.getInputStream());

    if(field.getText()!=""){
    String x = field.getText();
    out.writeUTF(x);
    field.setText("");
    }

    String s=new String(in.readUTF());
    txt.append("Server: "+s);

}
catch(UnknownHostException e){
}
catch (IOException e){
}   
}
}
}
服务器程序:

import java.io.*;
import java.net.*;
import javax.swing.*;
import java.awt.event.*;
import java.awt.BorderLayout;

public class Server extends JFrame {

private final int WIDTH = 310;
private final int HEIGHT=300;
private JButton btn;
private JPanel panel;
private JTextArea txt;
private JTextField field;
private JLabel label;

public Server(){

    setSize(WIDTH,HEIGHT);
    setTitle("Server");
    setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
    btn = new JButton("Send");
    txt= new  JTextArea();
    field= new JTextField(20);

    btn.addActionListener(new btnListener());

    add(btn, BorderLayout.SOUTH);
    add(txt, BorderLayout.CENTER);
    add(field, BorderLayout.NORTH);
            setVisible(true);
}

public void printtext() throws IOException{

    ServerSocket server = new ServerSocket(5555,10); 
    Socket soc = server.accept();    
        DataInputStream in =new DataInputStream(soc.getInputStream());

    String y=new String(in.readUTF());
    txt.append("Client: "+y);

}   

      public static void main(String args[])throws IOException
{

    Server c =  new Serverr();
    c.printtext();

}


private class btnListener implements ActionListener{
 @Override
public void actionPerformed(ActionEvent ev)
{

try{

    ServerSocket server = new ServerSocket(5555,10); 
    Socket soc = server.accept();    
        DataOutputStream out=new DataOutputStream(soc.getOutputStream());
    String s = field.getText();
    out.writeUTF(s);        


}
catch(UnknownHostException e){

}
catch (IOException e){
}   
}
}
}

您需要学习Swing线程规则:并确保您的网络连接在后台线程中工作。您也不希望出现空的catch块,因为这会导致灾难。至少要打印堆栈跟踪,即
e.printStackTrace()
catch(…..e)
中。请不要向我们倾倒一堆(格式不好的)代码,并询问我们有什么问题。向我们指出您尝试过的重要路线和事项。