java实验报告二Word格式文档下载.docx
- 文档编号:15831944
- 上传时间:2022-11-16
- 格式:DOCX
- 页数:11
- 大小:77.98KB
java实验报告二Word格式文档下载.docx
《java实验报告二Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《java实验报告二Word格式文档下载.docx(11页珍藏版)》请在冰豆网上搜索。
指导
教师
薛峰
教师评语
教师签名:
年月日
一、实验目的
1.掌握Java中GUI程序的编写,包括事件监听机制。
2.掌握Java的网络通信编程,ServerSocket,Socket类的使用。
3.掌握Java中多线程的编程,Thread类,Runnable接口的使用。
4.掌握用面向对象的方法分析和解决复杂问题。
二、实验原理
编写程序完成以下功能:
1.设计一个基于GUI的客户-服务器的通信应用程序,如图1,图2所示。
图1Socket通信服务器端界面
图2Socket通信客户端界面
2.图1为Socket通信服务器端界面,点击该界面中的【Start】按钮,启动服务器监听服务(在图1界面中间的多行文本区域显示“Serverstarting…”字样)。
图2为Socket通信客户端界面,点击该界面中的【Connect】按钮与服务器建立链接,并在图2所示界面中间的多行文本区域显示“Connecttoserver…”字样,当服务器端监听到客户端的连接后,在图1界面中间的多行文本区域追加一行“Clientconnected…”字样,并与客户端建立Socket连接。
3.当图1所示的服务器端和图2所示的客户机端建立Socket连接后,编程实现服务端、客户端之间的“单向通信”:
在客户端的输入界面发送消息,在服务端接收该消息,并将接收到对方的数据追加显示在多行文本框中。
三、使用硬件、软件环境
PC计算机一台,配置为CPU为1.5G,内存为512M,硬盘为40G,安装WindowsXP操作系统。
另外,使用eclipse,JDK1.6.0等软件
四、实验过程、步骤及原始记录(算法、原程序、测试结果,分析等)
1、先实现awt的界面编程,编写程序框,文字输入框,文本框等,并在按钮处插入actionlistener。
2、编写Listen1和Listen2来分别监听Start按钮和say按钮。
并在服务器与客户端各编写一个线程用来接收对方发来的信息。
服务器中的start创建serversocket然后等待客户端的start创建socket。
连接成功后两者分别开启接收信息的线程。
Say按钮按下时listen2发送信息去另一端口。
3、源代码
packagenet;
importjava.awt.*;
importjava.io.*;
importjava.awt.event.*;
import.*;
publicclassServerFrameextendsFrame{
publicServerFrame(Stringtitle){
super(title);
}
PanelnorthPanel,centerPanel,southPanel;
TextFieldtfport,tfsay,tfIP;
LabellabelPort,labelSay,labelIP;
ButtonbtStart,btSay;
TextAreatamsg;
ServerSockets=null;
Socketclient=null;
InputStreamis=null;
PrintWriteros=null;
Listen1ls1=newListen1();
Listen2ls2=newListen2();
BufferedReaderhear;
voidinitGUI(){
northPanel=newPanel();
centerPanel=newPanel();
southPanel=newPanel();
add(northPanel,"
North"
);
add(centerPanel,"
Center"
add(southPanel,"
South"
btStart=newButton("
start"
btSay=newButton("
say"
btStart.addActionListener(ls1);
btSay.addActionListener(ls2);
labelSay=newLabel("
Say"
labelPort=newLabel("
port"
tfport=newTextField("
3000"
60);
tfsay=newTextField(60);
tamsg=newTextArea(16,75);
northPanel.add(labelPort);
northPanel.add(tfport);
northPanel.add(btStart);
centerPanel.add(tamsg);
southPanel.add(labelSay);
southPanel.add(tfsay);
southPanel.add(btSay);
pack();
setVisible(true);
addWindowListener(newWindowAdapter(){//Addsthespecifiedwindowlistenertoreceivewindoweventsfromthiswindow
publicvoidwindowClosing(WindowEvente){
System.exit(0);
}
});
publicstaticvoidmain(String[]args){
ServerFrameserver=newServerFrame("
服务器"
server.initGUI();
classserverThreadextendsThread{
publicvoidrun(){
try{
is=client.getInputStream();
hear=newBufferedReader(newInputStreamReader(is));
tamsg.append(hear.readLine());
}catch(IOExceptione){
//TODOAuto-generatedcatchblock
e.printStackTrace();
System.exit
(1);
}
classListen1implementsActionListener{
@Override
publicvoidactionPerformed(ActionEvente){
tamsg.append("
serverstarting"
try{
s=newServerSocket(3000);
tamsg.append("
asdhasd"
}catch(IOExceptione1){
System.exit
(1);
//TODOAuto-generatedcatchblock
e1.printStackTrace();
}
client=s.accept();
os=newPrintWriter(client.getOutputStream(),true);
serverThreadis1=newserverThread();
is1.start();
classListen2implementsActionListener{
if(tfsay.getText()!
="
"
){
tamsg.append(tfsay.getText()+'
\n'
os.write(tfsay.getText()+'
os.flush();
tfsay.setText("
}
-----------------------------------------------------------------------------------------------------------------------------------packagenet;
publicclassClientFrameextendsFrame{
publicClientFrame(Stringtitle){
Sockets;
PrintWriterout;
BufferedReaderin;
Connect"
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- java 实验 报告
![提示](https://static.bdocx.com/images/bang_tan.gif)