:::::::::::::::
全双工通信。
/*
服务器端
如何让它滚动???
做一个JScorllPane ???
*/
import javax.swing.*;
import java.io.*;
public class MyServer3 extends JFrame implements ActionListener
{
JTextArea jta=null;
JTextField jtf=null;
JButton jb=null;
JScrollPane jsp=null;
JPanel jp1=null;
// 这里为什么把PrintWriter 定义为全局变量??
// 把信息发给客户端的对象
PrintWriter pw=null;
public static void main(String[] args)
{
MyServer3 msv=new MyServer3();
}
public MyServer3()
{
jta=new JTextArea();
jsp=new JScrollPane(jta); // 这句话的作用是什么?是把jta放到滚动的面板里面吗?
jtf=new JTextField(10);
jb =new JButton(发送);
// 对发送按钮做一个监听
jb.addActionListener(this);
jp1=new JPanel();
jp1.add(jtf);
jp1.add(jb);
this.add(jsp,"Center");
this.add(jp1,"South");
this.setTitle("QQ简易聊天");
this.setSize(400,300);
// 服务器监听
ServerSocket ss=new ServerSocket(9988);
//
ss.accept();
InputStreamReader isr=new InputStreamReader(s.getInputStream());
BufferedReader br=new BufferedReader(isr);
pw=new PrintWriter(s.getInputStream());
// 读取从客户端发来的信息
while(true)
{
// 读取从客户端发来的信息
String info=br.readLine();
// 把读取的信息,在jta中显示出来
jta.setText(info);
}
// 如果用户按下发送信息的按钮
public void actionPerformed(ActionListener arg0)
{
if(arg0.getSource()==jb)
{
// 把服务器在jtf里面写的内容发送给客户端
String info=jtf.getText();
pw.println(info);
jtf.setText("");// 清空内容
jta.setText(info);
}
}
}
}
::::::::::::::::::
/*
全双工
MyClient3:
*/
全双工通信。
/*
服务器端
如何让它滚动???
做一个JScorllPane ???
*/
import javax.swing.*;
import java.io.*;
public class MyClient3 extends JFrame implements ActionListener
{
JTextArea jta=null;
JTextField jtf=null;
JButton jb=null;
JScrollPane jsp=null;
JPanel jp1=null;
public static void main(String[] args)
{
MyServer3 msv=new MyServer3();
}
public MyServer3()
{
jta=new JTextArea();
jsp=new JScrollPane(jta); // 这句话的作用是什么?是把jta放到滚动的面板里面吗?
jtf=new JTextField(10);
jb =new JButton(发送);
jb.addActionListener(this);
jp1=new JPanel();
jp1.add(jtf);
jp1.add(jb);
this.add(jsp,"Center");
this.add(jp1,"South");
this.setTitle("QQ简易聊天 客户端");
this.setSize(400,300);
Socket s=new Socket("127.0.0.1",9988);
InputStreamReader isr=new InputStreamReader(s.getInputStream());
BufferedReader br=new BufferedReader(isr);
while(true)
{
// 不停的读取从服务器端发来的信息
String info=br.readLine();
jta.setText(info);
}
}
}