1、Java练习13全双工通讯Java练习,客户端与服务器端互通信息,全双工通讯,源码,可成功运行服务器端代码:/* * 服务器端 */package com.test1;import javax.swing.*;import java.awt.event.*;import java.io.*;import .*;SuppressWarnings(serial)public class myServer3 extends JFrame implements ActionListener /* * */ /显示对话文本域 定义 JTextArea jta=null; /输入框 定义 JTextFie
2、ld jtf=null; /发送按钮 定义 JButton jb=null; /创建一个JPanel 安放jtf和jb JPanel jp1=null; /滚动文本框 定义 JScrollPane jsp=null; /把信息发送给客户端的对象 列车 PrintWriter pw=null; public static void main(String args) / TODO Auto-generated method stub myServer3 msv=new myServer3(); public myServer3() /创建 控件 jta=new JTextArea(); jsp=
3、new JScrollPane(jta); jtf=new JTextField(20); 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,200); this.setVisible(true); /服务器开始监听 try ServerSocket ss=new Serv
4、erSocket(9988); /等待客户端连接 Socket s=ss.accept(); /制定列车路线 制定发送信息对象的通道, true:即时更新 pw=new PrintWriter(s.getOutputStream(),true); /读取从客户端发来的信息 InputStreamReader isr=new InputStreamReader(s.getInputStream(); BufferedReader br=new BufferedReader(isr); while(true) /读取从客户端发来的信息 String info=br.readLine(); jta.
5、append(客户端 对 服务器说: +info+rn); catch(Exception e) e.printStackTrace(); Override public void actionPerformed(ActionEvent arg0) / TODO Auto-generated method stub /如果用户按下发送信息按钮 if(arg0.getSource()=jb) /把服务器在jtf写的内容发送给客户端 String info=jtf.getText(); /把信息显示到jta jta.append(服务器对客户端说:+info+rn); /列车发车 信息运输发动 p
6、w.println(info); /清空jtf 打扫始发站 准备接纳下一批货物 jtf.setText(); 客户端代码:/* * 客户端 */package com.test2;import javax.swing.*;import java.awt.event.ActionEvent;import java.awt.event.ActionListener;import java.io.*;import .*;public class myClient3 extends JFrame implements ActionListener /显示对话文本域 定义 JTextArea jta=n
7、ull; /输入框 定义 JTextField jtf=null; /发送按钮 定义 JButton jb=null; /创建一个JPanel 安放jtf和jb JPanel jp1=null; /滚动文本框 定义 JScrollPane jsp=null; /定义发送信息的列车 PrintWriter pw=null; public static void main(String args) / TODO Auto-generated method stub myClient3 msv=new myClient3(); public myClient3() /创建 控件 jta=new JT
8、extArea(); jsp=new JScrollPane(jta); jtf=new JTextField(20); 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,200); this.setVisible(true); /处理信息* try /去和服务器连接 S
9、ocket s=new Socket(127.0.0.1,9988); /制定列车运行路线 pw=new PrintWriter(s.getOutputStream(),true); /不停地读服务器端信息 接收信息列车货物 InputStreamReader isr=new InputStreamReader(s.getInputStream(); BufferedReader br=new BufferedReader(isr); while(true) String info=br.readLine(); jta.append(服务器对客户端说:+info+rn); catch(Exception e) e.printStackTrace(); Override public void actionPerformed(ActionEvent arg0) / TODO Auto-generated method stub if(arg0.getSource()=jb) String info=jtf.getText(); /同时把客户端发送的信息显示到jta jta.append(客户端对服务器说:+info+rn); pw.println(info); /清空jtf 清场 jtf.setText(); 完2014/6/15共享,详细完整,有用,可成功运行
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1