2023年合工大JAVA實(shí)驗(yàn)報(bào)告_第1頁(yè)
2023年合工大JAVA實(shí)驗(yàn)報(bào)告_第2頁(yè)
2023年合工大JAVA實(shí)驗(yàn)報(bào)告_第3頁(yè)
2023年合工大JAVA實(shí)驗(yàn)報(bào)告_第4頁(yè)
2023年合工大JAVA實(shí)驗(yàn)報(bào)告_第5頁(yè)
已閱讀5頁(yè),還剩14頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

《Java技術(shù)》實(shí)驗(yàn)報(bào)告

實(shí)驗(yàn)一:2023

年10月11日

學(xué)院計(jì)算機(jī)與信息學(xué)院專業(yè)班級(jí)姓名成績(jī)

實(shí)驗(yàn)項(xiàng)目

課程實(shí)驗(yàn)一Java開發(fā)環(huán)指導(dǎo)

Java技術(shù)名

名稱境的安裝與配置教師

評(píng)教師署名:

語(yǔ)

月日

一'實(shí)驗(yàn)?zāi)康?/p>

1.掌握J(rèn)DK的安裝環(huán)節(jié)(有條件的話可以在Linux系統(tǒng)下安裝)。

2.理解環(huán)境變量PATH.CLASSPATH的作用,以及它們的設(shè)立方法(Win98和Win2

023/XP下的不同設(shè)立方法)。

3.熟悉TextPad(或JCreator)編輯環(huán)境,編寫簡(jiǎn)樸的App1ication程序,并編譯和解

釋執(zhí)行。

4.記錄編譯和執(zhí)行Java程序當(dāng)中的系統(tǒng)錯(cuò)誤信息提醒,并給*解決辦法。

二、實(shí)驗(yàn)原理

1.掌握安裝Jdkl.6的過(guò)程。

2.安裝JCreator軟件,用于編譯java程序。

3.在Textpad環(huán)境下編寫一個(gè)HelloWorld.java程序,在DOS提醒符下編譯并執(zhí)行這

個(gè)程序。

4.設(shè)立環(huán)境變量PATH,CLASSPATH,使得Java程序能對(duì)的編譯和執(zhí)行。

5.編寫一個(gè)類A,它位于包a中,保存到A.java中,再編寫一個(gè)類B,它位于包b

中,保存到B.java中。在類B中實(shí)例化類A的一個(gè)對(duì)象。分別編譯類A和類B。

三'使用硬件'軟件環(huán)境

PC計(jì)算機(jī)一臺(tái),配置為CPU為1.5G,內(nèi)存為512M,硬盤為40G,安裝Windows

XP操作系統(tǒng)。

此外,使用JCreator,JDK1.6.0等軟件

四、實(shí)驗(yàn)過(guò)程、環(huán)節(jié)及原始記錄(算法、原程序、測(cè)試結(jié)果,分析等)

1.安裝Jdkl.6.0集成環(huán)境,安裝成功后,配置path,classpath途徑,讓用戶在

任何目錄下均可用到Java的系統(tǒng)資源。

①先配置%JAVA_HOME%環(huán)境變量,途徑為jdk的目錄;

②配置Path環(huán)境變量,途徑為%JAVAHOME%\bin;

③再配置classpath環(huán)境變量,途徑為%JAVA_HOME%由e\lib;

2.在記事本編寫he1loworld程序,并在DOS命令行下編譯運(yùn)營(yíng)。

①在JCreator中寫出如下代碼,并保存為HelloWorld.java:

pub1icclassHe1loWor1d

{

pub1icstaticvoidmain(String[]args)

i

System.out.println("HelloWodd!");}

)

②在命令行中進(jìn)入到該文獻(xiàn)途徑,并輸入javacHelloWorid.java完畢編譯,

再輸入javaHe1loWorld完畢運(yùn)營(yíng)。

3.用記事本編寫包a包b的程序,并用DOS命令行運(yùn)營(yíng)。執(zhí)行過(guò)程:口將兩個(gè)記事

本,改名為A.java和B.java,并寫出如下程序:

A.java文獻(xiàn)的源程序:

packagea;

pub1icc1assA{

publievoidsay(){

QSystem.out.println("Succeed!");

)

}

B.java文獻(xiàn)中的源程序:

packageb;

importa.*;

publicclassB{

publicstaticvoidmain(Stringargs[]){

oAaa=newA();

saa.maker();

f

)

②先在DOS命令行中編譯A.java文獻(xiàn),在命令行中輸入javacA.java

d.

再編譯B.java文獻(xiàn),在命令行中輸入javacB.java-d.

③在命令行中輸入javab.B

即可完畢。

五、實(shí)驗(yàn)結(jié)論、分析、思考題與心得體會(huì)

通過(guò)本次實(shí)驗(yàn),我有以下幾方面的收獲、結(jié)識(shí)和體會(huì):

1、學(xué)會(huì)了在記事本和命令行,JCreator,等環(huán)境下編寫程序及運(yùn)營(yíng)程序的方法;

2、學(xué)會(huì)了如何安裝JDK,以及如何配置%JAVA_HOME%,path,classpath等環(huán)境

變量

3、加深了Java中相關(guān)語(yǔ)法的結(jié)識(shí):

①文獻(xiàn)名必須與pub1ic類的類名相同,并且一個(gè)文獻(xiàn)中只允許有一個(gè)publi

c類。

②Java對(duì)大小寫敏感,如String中的S就嚴(yán)格區(qū)分大小寫;對(duì)中文標(biāo)點(diǎn)符號(hào)和英

文標(biāo)點(diǎn)符號(hào)敏感Java只能辨認(rèn)英文標(biāo)點(diǎn)符號(hào)。

③在用記事本編寫包a包b的程序,并用DOS命令行運(yùn)營(yíng)時(shí)。要將兩個(gè)類分別放

在兩個(gè)文獻(xiàn)中,要先編譯A.java再編譯B.java,在編譯時(shí)一定要在命令行

中輸入javacA.java-d.和javacB.java-d.才干自動(dòng)打包;兩個(gè)文獻(xiàn)都

編譯完畢以后,在命令行的父目錄中輸入javab.B來(lái)執(zhí)行,輸入java

b.B.java。

3、思考題

1).。什么是JVM,它的作用是什么?

JVM就是java虛擬機(jī)的英文簡(jiǎn)寫,java虛擬機(jī)就是為任何的平臺(tái)提供一個(gè)編譯jav

a程序的接口。就是將編譯的java程序翻譯,以供不同的平臺(tái)去辨認(rèn)。

2)如何理解PATH和CLASSPATH,,如何設(shè)立它們。

PATH和CLASSPATH分別是JavaJDK和JRE的途徑。設(shè)立是在計(jì)算機(jī)屬性中的

高級(jí)系統(tǒng)設(shè)立的環(huán)境變量,配置方法如下:

①先配置%JAVA_HOME%環(huán)境變量,途徑為jdk的目錄;

②配置path環(huán)境變量,途徑為%JAVA_HOME%\bin;

③再配置classpath環(huán)境變量,途徑為%JAVA_H。ME%\jre\lib;

《Java技術(shù)》實(shí)驗(yàn)報(bào)告

實(shí)驗(yàn)二:2023

年10月11日

學(xué)院計(jì)算機(jī)與信息學(xué)院專業(yè)班級(jí)姓名成績(jī)

實(shí)驗(yàn)項(xiàng)目

課程實(shí)驗(yàn)二類的封裝、繼指導(dǎo)

Jav3技術(shù)名

名稱承、多態(tài)教師

評(píng)教師署名:

年月

語(yǔ)

一'實(shí)驗(yàn)?zāi)康?/p>

1.復(fù)習(xí)、理解OOP的三大特性——封裝、繼承和多態(tài)。

2.學(xué)會(huì)使用Java編寫簡(jiǎn)樸的類。理解類的屬性和方法。

3.掌握關(guān)鍵字private,protected,public的作用,掌握靜態(tài)類,內(nèi)部類的概念。

4.掌握多態(tài)的概念。

二'實(shí)驗(yàn)原理

分別編寫兩個(gè)類Point2D,Point3D來(lái)表達(dá)二維空間和三維空間的點(diǎn),使之滿足下列規(guī)

定:

(1)Point2D有兩個(gè)整型成員變量x,y(分別為二維空間的X,Y方向坐標(biāo)),Point2D的

構(gòu)造方法要實(shí)現(xiàn)對(duì)其成員變量x,y的初始化。

(2)Point2D有一個(gè)void型成員方法offset(inta,intb),它可以實(shí)現(xiàn)Po

int2D的平移。

(3)Point3D是Point2D的直接子類,它有有三個(gè)整型成員變量x,y,z(分別為三維空間

的X,Y,Z方向坐標(biāo)),Point3D有兩個(gè)構(gòu)造方法:Point3D(intx,inty,intz)和

Point3D(Point2Dp,intz),兩者均可實(shí)現(xiàn)對(duì)Poin13D的成員變量x,y,z的初始

化。

(4)Point3D有一個(gè)void型成員方法oflfcet(inta,intb,intc),該方法可以實(shí)現(xiàn)

Point3D的平移。

(5)在Point3D中的主函數(shù)main()中實(shí)例化兩個(gè)Point2D的對(duì)象p2dl,p2d2,打印

出它們之間的距離,再實(shí)例化兩個(gè)Point3D的對(duì)象p3dl,p3d2,打印出他們之間的距離。

(提醒:java.1ang.Math.sqrt()方法)

三'使用硬件'軟件環(huán)境

PC計(jì)算機(jī)一臺(tái),配置為CPU為1.5G,內(nèi)存為512M,硬盤為40G,安裝Win

dowsXP操作系統(tǒng)。

此外,使用JCreator,JDK1.6.0等軟件

四'實(shí)驗(yàn)過(guò)程、環(huán)節(jié)及原始記錄(算法'原程序、測(cè)試結(jié)果,分析等)

運(yùn)用類的繼承寫一個(gè)point2D類,其子類是point3D。子類P。int3D的構(gòu)造函數(shù)調(diào)用了

父類的構(gòu)造函數(shù);計(jì)算平面兩點(diǎn)的距離函數(shù)和計(jì)算空間兩點(diǎn)的距離函數(shù)寫在父類Point2

D中,并且他們是靜態(tài)方法,在子類繼承后,在其主方法(主方法是靜態(tài)的)中可以直接調(diào)用

(或者通過(guò)類名調(diào)用);此外平移函數(shù)可以對(duì)點(diǎn)進(jìn)行平移。

源程序如下:

classPoint2D(

intx,y;

pub1icPoint2D(intx,inty)〃有參構(gòu)造函數(shù),對(duì)x,y初始化

(

this.x=x;

this.y=y;

)

voidoffset(inta,intb)//平移函數(shù)

(

x=x+a;

§y=y+b;

1

publicstaticdoubledistance2D(Point2Da,Point2Db){retur

nMath.sqrt(Math.pow((a.x-b.x),2)+Math.pow((a.y-b.y),2));}〃靜

態(tài)方法,求平面兩點(diǎn)的距離

pub1icstaticdoubIedistance3D(Point3Da,Point3Db){return

Math,sqrt(Math.pow((a.x-b.x),2)+Math.pow((a.y-b.y),2)+Math.pow

((a.z-b.z),2));}〃靜態(tài)方法,求空間兩點(diǎn)的距離

}

pub1icclassPoint3DextendsPoint2D{

,intz;

,Point3D(intx,intyrintz)//構(gòu)造函數(shù),對(duì)x,y,z初始化

(

°super(x,y);

this.z=z;

,}

aPoint3D(Point2Dp,intz)//構(gòu)造函數(shù),對(duì)x,y,z初始化

,§super(p.x,p.y);

。this.z=z;

,}

voidoffset(inta,intb,intc)//平移函數(shù)

(

ox+=a;

y+=b;

,z+=c;

,}

?pubIicstaticvoidmain(Stringargs[]){

Point2Dp2d1=newPoin12D(10,3);

Point2Dp2d2=newPoint2D(2,2);

,Point3Dp3d1=newPoint3D(10,11,0);

,Point3Dp3d2=newPoint3D(1,6,0);

,Point3Dp3d3=newPoin13D(p2d1,16);

SB言理員:命令提示符

MicrosoftVHndows[版本6.1.7601]

版權(quán)所有2009MicrosoftCorporationo保留所有權(quán)利。

C:\Users\^dninistrator>cddesktop

C:XJUsersSAdninistratorSDesktop^auacPoint3D.jaua

C:\Users\Adninistrator\Desktop>jauaPoint3D

distance2D=8.06225774829855

distance3D=10.295630140987

Systern.out.printIn("distance2D="+distance2D(p2d1,p2d2));

oSystem.out.printIn("distance3D="+distanee3D(p3d1,p3d2));

。}

)

運(yùn)營(yíng)結(jié)果:

五、實(shí)驗(yàn)結(jié)論、分析、思考題與心得體會(huì)

通過(guò)本次實(shí)驗(yàn),我有以下幾方面的收獲、結(jié)識(shí)和體會(huì):

1、學(xué)會(huì)了類的繼承、封裝、多態(tài)的基本應(yīng)用,學(xué)會(huì)了兩個(gè)方法叫rt()和pow()在程

序中的運(yùn)用。

2、加深了Java中相關(guān)語(yǔ)法的結(jié)識(shí):△①子類繼承父類的非私有成員,但是不能繼承構(gòu)

造方法,必須用super()來(lái)調(diào)用父類的構(gòu)造方法。

②構(gòu)造方法可以通過(guò)形參的個(gè)數(shù)、類型、排列不同來(lái)重教。

③Math類屬于java.lang包,并且pow()和sqrt()都是static靜態(tài)方法,

可以直接通過(guò)Math.pow()和Math.sqrt()來(lái)調(diào)用。

①Static靜態(tài)方法只能直接調(diào)用靜態(tài)成員,不能直接調(diào)用非靜態(tài)成員。

3、思考題

1).什么是類的多態(tài)性。

接口的多種不同的實(shí)現(xiàn)方式即為多態(tài)。同一段代碼在不同的地方,會(huì)執(zhí)行不同的操作。

《Java技術(shù)》實(shí)驗(yàn)報(bào)告

實(shí)驗(yàn)三:20

23年10月11日

學(xué)院計(jì)算機(jī)與信息學(xué)院專業(yè)班級(jí)姓名成績(jī)

實(shí)驗(yàn)項(xiàng)目

課程實(shí)臉三基于GUI的網(wǎng)指導(dǎo)A教

Java技術(shù)名

名稱絡(luò)通信程序設(shè)計(jì)師

評(píng)

教師署

語(yǔ)

名:

年月

一、實(shí)驗(yàn)?zāi)康?/p>

1.掌握J(rèn)ava中GUI程序的編寫,涉及事件監(jiān)聽機(jī)制。

2.掌握J(rèn)ava的網(wǎng)絡(luò)通信編程,ServerSocket,Socket類的使用。

,3.掌握J(rèn)ava中多線程的編程,Thread類,Runnable接口的使用。

。4.掌握用面向?qū)ο蟮姆椒ǚ治龊徒鉀Q復(fù)雜問(wèn)題。

二、實(shí)驗(yàn)原理

編寫程序完畢以下功能:

1.設(shè)計(jì)一個(gè)基于GUI的客戶-服務(wù)器的通信應(yīng)用程序,如圖1,圖2所示。

圖1Socket通信服務(wù)器端界面

圖2Socket通信客戶端界面

2.圖1為Socket通信服務(wù)器端界面,點(diǎn)擊該界面中的【Start】按鈕,啟

動(dòng)服務(wù)器監(jiān)聽服務(wù)(在圖1界面中間的多行文本區(qū)域顯示“Serversta

rting…”字樣)。圖2為Socket通信客戶端界面,點(diǎn)擊該界面中的【Connect]

按鈕與服務(wù)器建立鏈接,并在圖2所示界面中間的多行文本區(qū)域顯示“Conne

cttoserver...”字樣,當(dāng)服務(wù)器端監(jiān)聽到客戶端的連接后,在圖1界面中間

的多行文本區(qū)域追加一行“Clientconnected...“字樣,并與客戶端建立So

cket連接。

3.當(dāng)圖1所示的服務(wù)器端和圖2所示的客戶機(jī)端建立Socket連接后,編

程實(shí)現(xiàn)這兩端的數(shù)據(jù)通信,每次將接受到對(duì)方的數(shù)據(jù)追加顯示在多行文本框中。

三、思考題

1.對(duì)整個(gè)實(shí)驗(yàn)進(jìn)行總結(jié),寫出實(shí)驗(yàn)心得。

2.在完畢上述實(shí)驗(yàn)內(nèi)容的基礎(chǔ)上,嘗試實(shí)現(xiàn)服務(wù)器端可以與多個(gè)客戶機(jī)進(jìn)行

通信。

三、使用硬件,軟件環(huán)境

PC計(jì)算機(jī)一臺(tái),配置為CPU為1.5G,內(nèi)存為512M,硬盤為40G,安裝Wind

owsXP操作系統(tǒng)。

此外,使用JCreator,JDKL.6.0等軟件

四、實(shí)驗(yàn)過(guò)程、環(huán)節(jié)及原始記錄(算法'原程序、測(cè)試結(jié)果,分析等)

①分別編寫兩個(gè)文獻(xiàn)ClientjavaServer.java;這兩個(gè)代碼的結(jié)構(gòu)十分相似,都是先寫一

個(gè)主類,再寫另一個(gè)實(shí)現(xiàn)類,主類通過(guò)創(chuàng)建實(shí)現(xiàn)類的對(duì)象來(lái)調(diào)用其構(gòu)造方法來(lái)實(shí)現(xiàn)功能。實(shí)

現(xiàn)類中寫了很多方法,也寫了很多內(nèi)部類,方法層層調(diào)用。實(shí)現(xiàn)類在構(gòu)造方法中寫了調(diào)用了

實(shí)現(xiàn)GUI的函數(shù),也為按鈕注冊(cè)了監(jiān)聽器。在不同的內(nèi)部類中寫了不同監(jiān)聽器所調(diào)用的

actioPerfonned()方法。

②在服務(wù)器中創(chuàng)建ServerSocket對(duì)象來(lái)接受客戶端的連接請(qǐng)求,并指定端標(biāo)語(yǔ),客戶端通過(guò)

Socket對(duì)象來(lái)向服務(wù)器的ip和端口發(fā)送連接請(qǐng)求。服務(wù)器在接到連接請(qǐng)求后,服務(wù)器會(huì)

創(chuàng)建一個(gè)新的Socket對(duì)象與客戶端的Socket對(duì)象連接。連接成功后通過(guò)10流來(lái)通

信,服務(wù)器的輸入流是客戶端的輸出流,服務(wù)器的輸出流時(shí)客戶端的輸入流。

服務(wù)器代碼如下:

importjava.awt.*;

importjava.awt.event.*;

importjava.util.*;

importjava.io.*;

importjava,net.*;

importjavax.swing.*;

publicclassServer{

◎publicstaticvoidmain(String[]args){

wMyFrameserve=newMyFrame();

oserve.setVisible(true);

“serve.setResizable(false);//設(shè)立此窗體

是否可由用戶調(diào)整大小

。serve.setDefaultC1oseOperation(JFrame.EXITONCLOSE);//設(shè)立默

認(rèn)關(guān)閉操作

}

}

classMyFrameextendsJFrame{

JTextFieldport;

<>JButtonstart;

<?JTextAreacontent;

JTextFieldcin;

JButtonsay;

6Socketsocket;

MyFrame(){

。init();

StartListensListen=newStartListen();

3SayListenstListen=newSayListen();

start.addActionListener(sListen);〃為按鈕start注

冊(cè)一個(gè)監(jiān)聽器

^say.addActionListener(stListen);//為按鈕say注冊(cè)一個(gè)監(jiān)聽器

}

voidinit(){

3setLayout(newF1owLayout());〃設(shè)立窗體為流式布局

。setSize(400,400);

<>setLocation(400,100);

add(newJLabel("Port:"));

呻ort=newJTextField(H8888",25);

oadd(port);

◎start=newJButton("Start");

8ade1(start);

。content=newJTextArea(l5,35);

。JScroliPanescro11=newJScrollPane(content);//設(shè)立滾動(dòng)條

gadd(scroil);

oadd(newJLabel(HSay:"));

cin=newJTextField(26);

。add(cin);

osay=newJButton(°Say");

add(say);

}

classStartListenimp1ementsActionListener{

Od

publievoidactionPerformed(ActionEvente){

start.setEnab1ed(fa1se);

try(

8gServerSockets=newServerSocket(Integer.parseInt(port.getText

()));〃創(chuàng)建一個(gè)服務(wù)器套接字對(duì)象s,形參為從port文本框中讀取的整型(端標(biāo)語(yǔ))

?socket=s.accept();

PrintWriterout=newPrintWriter(newBufferedWriter(new0u

tputStreamWriter(socket.getOutputStream())),true);//倉(cāng)U建一個(gè)打

印輸出流對(duì)象,其形參為從套接字socket對(duì)象中獲取的輸出流

。。out.print1n(nConnectedn);

“content.append("C1ientconnected"+"\n");//對(duì)兩個(gè)字符串進(jìn)

行拼接。

^wServerThreadst=newServerThread();〃創(chuàng)建一個(gè)ServerThread對(duì)

象st,并調(diào)用其構(gòu)造方法

6。st.start();//啟動(dòng)一個(gè)線程,并調(diào)用run

()方法。。

catch(Exceptionex){

Od)

c1assSayListenimp1ementsActionListener{

。Stringstr;

^publicvoidactionPerformed(ActionEvente){

otry{PrintWriterout=newPrintWriter(newBufferedWriter(new

0utputStrearnWriter(socket.getOutputStrcam())),true);〃創(chuàng)建一個(gè)打印輸出

流,形參為從套接字SOcket中獲取的輸出流

。ostr=cin.getText();

8“f(!str.isEmpty()){

e^out.println(newDate()+"\n"+str);〃打印輸出日期

和發(fā)送的消息(str)

content.append(newDate()+"\nme:,,+str+,,\nn);

gOUt.f1ush();〃清空緩

存區(qū)

}

,ocin.setText(,,M);

。}

。catch(Exceptionex){

}

。}

?classServerThreadextendsThread{

Qpublievoidrun(){

8gtry{

BufferedReaderin=newBufferedRcader(newInputstreamReader(s

ocket.getInputStream()));〃創(chuàng)建一個(gè)緩沖輸出流,其形參為從套接字socket中

獲取的輸入流

。Stringstr;

。?while(true){

gg^>str=in.readLine();〃按行讀取

gcontent.append(str+u\n");

b0)

ooa}

Q。catch(Exceptionex){

0lo0

dd}

°}

客戶端代碼如下:

importjava.awt.*;

importjava.awt.event

importjava.util.*;

importjava.io.*;

imp.*;

importjavax.swing.*;

importjava.util.Calendar;

publicclassClient{

pub1icstaticvoidmain(String[]args)

ooMyFramec1ient=newMyFrame();

?client,setVisib1e(true);

?client.setResizable(false);//設(shè)立此窗體是否可由用戶

調(diào)整大小

client.setDefau1tCloseOperation(JFrame.EXITONCLOSE);〃設(shè)立關(guān)閉操

6

)

)

classMyFrameextendsJFrame

(

JTextFieldip;

JTextFieldport;

JTextFie1dcin;

JTextAreacontent;

JButtonconnect;

JButtonsay;

Socketsocket;

MyFrame(){

。init();

ConnectListencListener=newConnectListen();

SayListensListener=newSayListen();

econnect.addActionListener(cListener);〃注冊(cè)監(jiān)聽器

say.addActionListener(sListener);〃注冊(cè)監(jiān)聽器

}

voidinit(){

<?setLayout(newFlowLayout());//設(shè)立窗體為流式

布局

setSize(440,500);

?setLocation(800,100);

add(newJLabel(nServer:ip"));

ip=newJTextFie1d(”127.0.0.1”,8);

°add(ip);

add(newJLabel(nServer:port**)):

?port=newJTextField(“8888",8);

add(port);

connect=newJBu11on(nconnect'*);

add(connect);

content=newJTextArea(16,35);

JScro11Panescroll=newJScro1IPane(content);//設(shè)

法滾動(dòng)條

〉add(scro11);

add(newLabe1(MSay:M));

ecin=newJTextField(25);

oadd(cin);

?say=newJButton(nsay"):

add(say);

}

classConnectListenimplementsActionListener{

ntportNum;

publicvoidactionPerfbrmed(ActionEvente){

connect.setEnabled(false);//按下connect按鈕后,co

nnect不可再次點(diǎn)擊

◎try{content.setText(nConnecttoserver....\nn);〃在文本區(qū)中顯

示“Connecttoserver....\n"

portNum=Integer.parseInt(port.getText());//讀取port

文本框中的字符串,并將字符串轉(zhuǎn)化為整型賦給portNum

asocket=newSocket(ip.getText(),portNum);〃定義對(duì)象socket,并指

定主機(jī)號(hào)(host)和端標(biāo)語(yǔ)portNum

。ClientThreadct=newC1ientThread();〃定義一個(gè)ClientTh

read類的對(duì)象ct

-ct.startQ;//啟動(dòng)一個(gè)線程,并調(diào)

用ClientThread類中的run()方法

}

ocatch(Exceptionex){

J60

。}

)

classSayListenimplementsActionListener{

Stringstr;

?publicvoidactionPerfbrmed(ActionEvente){

try{PrintWriterout=newPrintWriter(newBufferedWriter(new

0utputStreamWriter(socket.getOutputStream())),true);〃從socket獲取字節(jié)輸

出流,并將其最終轉(zhuǎn)化為PrintWriter

str=cin.getText();〃從文本框

中獲取字符串賦給str

。if(!

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論