java实验报告二.docx

上传人:b****6 文档编号:2920924 上传时间:2022-11-16 格式:DOCX 页数:11 大小:77.98KB
下载 相关 举报
java实验报告二.docx_第1页
第1页 / 共11页
java实验报告二.docx_第2页
第2页 / 共11页
java实验报告二.docx_第3页
第3页 / 共11页
java实验报告二.docx_第4页
第4页 / 共11页
java实验报告二.docx_第5页
第5页 / 共11页
点击查看更多>>
下载资源
资源描述

java实验报告二.docx

《java实验报告二.docx》由会员分享,可在线阅读,更多相关《java实验报告二.docx(11页珍藏版)》请在冰豆网上搜索。

java实验报告二.docx

java实验报告二

《Java技术》实验报告

实验一:

2017年09月日

学院

计算机与信息学院

专业班级

姓名

成绩

课程

名称

Java技术

实验项目

名称

实验二基于GUI的网络通信程序设计

指导

教师

薛峰

教师评语

 

教师签名:

年月日

一、实验目的

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{

InputStreamis=null;

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();

}

try{

client=s.accept();

}catch(IOExceptione1){

System.exit

(1);

//TODOAuto-generatedcatchblock

e1.printStackTrace();

}

try{

os=newPrintWriter(client.getOutputStream(),true);

}catch(IOExceptione1){

System.exit

(1);

//TODOAuto-generatedcatchblock

e1.printStackTrace();

}

serverThreadis1=newserverThread();

is1.start();

}

}

classListen2implementsActionListener{

@Override

publicvoidactionPerformed(ActionEvente){

if(tfsay.getText()!

=""){

tamsg.append(tfsay.getText()+'\n');

os.write(tfsay.getText()+'\n');

os.flush();

tfsay.setText("");

}

}

}

}

-----------------------------------------------------------------------------------------------------------------------------------packagenet;

importjava.awt.*;

importjava.io.*;

importjava.awt.event.*;

import.*;

publicclassClientFrameextendsFrame{

publicClientFrame(Stringtitle){

super(title);

}

PanelnorthPanel,centerPanel,southPanel;

TextFieldtfport,tfsay,tfIP;

LabellabelPort,labelSay,labelIP;

ButtonbtStart,btSay;

TextAreatamsg;

Sockets;

PrintWriterout;

BufferedReaderin;

Listen1ls1=newListen1();

Listen2ls2=newListen2();

voidinitGUI(){

northPanel=newPanel();centerPanel=newPanel();southPanel=newPanel();

add(northPanel,"North");add(centerPanel,"Center");add(southPanel,"South");

btStart=newButton("Connect");btSay=newButton("say");

btStart.addActionListener(ls1);btSay.addActionListener(ls2);

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 表格模板 > 调查报告

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1