我无法从服务器向客户端发送字符串

时间:2014-11-20 15:20:50

标签: java swing

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

客户计划:

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){
}   
}
}
}

0 个答案:

没有答案