Java练习13全双工通讯.docx
- 文档编号:7823073
- 上传时间:2023-01-26
- 格式:DOCX
- 页数:7
- 大小:42.24KB
Java练习13全双工通讯.docx
《Java练习13全双工通讯.docx》由会员分享,可在线阅读,更多相关《Java练习13全双工通讯.docx(7页珍藏版)》请在冰豆网上搜索。
Java练习13全双工通讯
Java练习,客户端与服务器端互通信息,全双工通讯,源码,可成功运行
服务器端代码:
/**
*服务器端
*/
packagecom.test1;
importjavax.swing.*;
importjava.awt.event.*;
importjava.io.*;
import.*;
@SuppressWarnings("serial")
publicclassmyServer3extendsJFrameimplementsActionListener{
/**
*
*/
//显示对话文本域定义
JTextAreajta=null;
//输入框定义
JTextFieldjtf=null;
//发送按钮定义
JButtonjb=null;
//创建一个JPanel安放jtf和jb
JPaneljp1=null;
//滚动文本框定义
JScrollPanejsp=null;
//把信息发送给客户端的对象列车
PrintWriterpw=null;
publicstaticvoidmain(String[]args){
//TODOAuto-generatedmethodstub
myServer3msv=newmyServer3();
}
publicmyServer3(){
//创建控件
jta=newJTextArea();
jsp=newJScrollPane(jta);
jtf=newJTextField(20);
jb=newJButton("发送");
jb.addActionListener(this);//监听
//布局
jp1=newJPanel();
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{
ServerSocketss=newServerSocket(9988);
//等待客户端连接
Sockets=ss.accept();
//制定列车路线制定发送信息对象的通道,true:
即时更新
pw=newPrintWriter(s.getOutputStream(),true);
//读取从客户端发来的信息
InputStreamReaderisr=newInputStreamReader(s.getInputStream());
BufferedReaderbr=newBufferedReader(isr);
while(true){
//读取从客户端发来的信息
Stringinfo=br.readLine();
jta.append("客户端对服务器说:
"+info+"\r\n");
}
}catch(Exceptione){
e.printStackTrace();
}
}
@Override
publicvoidactionPerformed(ActionEventarg0){
//TODOAuto-generatedmethodstub
//如果用户按下发送信息按钮
if(arg0.getSource()==jb){
//把服务器在jtf写的内容发送给客户端
Stringinfo=jtf.getText();
//把信息显示到jta
jta.append("服务器对客户端说:
"+info+"\r\n");
//列车发车信息运输发动
pw.println(info);
//清空jtf打扫始发站准备接纳下一批货物
jtf.setText("");
}
}
}
客户端代码:
/**
*客户端
*/
packagecom.test2;
importjavax.swing.*;
importjava.awt.event.ActionEvent;
importjava.awt.event.ActionListener;
importjava.io.*;
import.*;
publicclassmyClient3extendsJFrameimplementsActionListener{
//显示对话文本域定义
JTextAreajta=null;
//输入框定义
JTextFieldjtf=null;
//发送按钮定义
JButtonjb=null;
//创建一个JPanel安放jtf和jb
JPaneljp1=null;
//滚动文本框定义
JScrollPanejsp=null;
//定义发送信息的列车
PrintWriterpw=null;
publicstaticvoidmain(String[]args){
//TODOAuto-generatedmethodstub
myClient3msv=newmyClient3();
}
publicmyClient3(){
//创建控件
jta=newJTextArea();
jsp=newJScrollPane(jta);
jtf=newJTextField(20);
jb=newJButton("发送");
jb.addActionListener(this);//注册监听
//布局
jp1=newJPanel();
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{
//去和服务器连接
Sockets=newSocket("127.0.0.1",9988);
//制定列车运行路线
pw=newPrintWriter(s.getOutputStream(),true);
//不停地读服务器端信息接收信息列车货物
InputStreamReaderisr=newInputStreamReader(s.getInputStream());
BufferedReaderbr=newBufferedReader(isr);
while(true){
Stringinfo=br.readLine();
jta.append("服务器对客户端说:
"+info+"\r\n");
}
}catch(Exceptione){
e.printStackTrace();
}
}
@Override
publicvoidactionPerformed(ActionEventarg0){
//TODOAuto-generatedmethodstub
if(arg0.getSource()==jb){
Stringinfo=jtf.getText();
//同时把客户端发送的信息显示到jta
jta.append("客户端对服务器说:
"+info+"\r\n");
pw.println(info);
//清空jtf清场
jtf.setText("");
}
}
}
完
2014/6/15
共享,详细完整,有用,可成功运行
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- Java 练习 13 双工 通讯