1、西农java实习八网络编程信息工程学院1Java语言程序设计实验报告学院:信息学院 班级:* 姓名:pprp 学号:*3 成绩:一、实习目标(1)描述掌握Socket通信(2)掌握UDP数据报通信(3)掌握多线程网络编程二、实验过程任务一:掌握Socket类的使用在两台机器上分别运行以下服务器端程序和客户端程序, 观察程序的多次运行结果,回答问题S public class Server public static void msintString mrgs) 实验报告的内容与格式按任课教师的要求书写。127.0.0.159368/127.0.0.1:20182018public static
2、 void main(5trinx args) Socket socket = new Socket(); /clImetSocketAddress isa new InetSocketAddress(2918); try socket,connect(isa); /c2Sy stem .out. print In (socket. get Inst Address () /c 5System-out.printIn(socket getPort() Hc4System.out Hprintln(socket getLocalSocketAddressf); - r5 Systemrootpr
3、intIn(socket.getLocalPort(); /c6socket * elose(); cdtch (lOException e)(System.out.println();观察服务器端和客户端的输出,说明添加注释的每行代码作用。截图:两次服务器与客户端的输出,可以发现两次所用到的端口是随机生成的是 不一致的。/127.0.9,12018/127.0,0,1:5936859368/127.0.0*12018/127,0.9.1:5989859898|/127,0.0,159898/127.0.0.1:20182918代码如下:package workl;import java.io
4、.10Exception;! Ipublic class Server public 百t冃tic void rnain(S七厂in args) Serversocket sSocket = null;Sacket socket = null;try sSocket = new ServerSockt(2018;; catch (IOException el) System .out. printing JI已龍占用! M);)try (socket = Socket,accept)jSystem 十 pjj】Lji(5JLkEl*WEtInEtALldi疋台、()jSystem pr*int
5、.ri(5CKl J Server.java0 Jg work3t work4t 呱 JRE 浆统库:JavaSE-1.7Qy destination二 cartoonjpg 创 file.docxG source匚 cartoonjpg回file.docx代码截图:Server.javapackage work2;import java.io*DataInputStream;_public class Server SprverSockpt ss = null;Socket socket 三 null;FilelnputStream fis = null;DataOutputStream d
6、os = null;DataTnputtromni di; = null;public SererO try ss = new ServerSocket(5036);socket = ss.accept(;dos - new DataOutputs七厂皂日口(50匚比七呂亡; dis = new DataInputStream(socket呂etlnputytFe日rn(); catch (IOException e) System,out.printing服务器:琏接失败);|e,printStackTrace();public void interact()-(while tx) try
7、byte b = new byte10?4; int lns = dis * rpa(1(b);String -FileNaniQ = nei Stringtb,.,lens);System printlnff iloName t + f ilcNamc) f is = rew FileInpirtStreain(. source + fileName); byte buffer - new byte1024*6W5 int len;Systen.out.println(HKS: 送內弯”);while (len = fis.read(buffer) != -1) dos.writpfbuff
8、prjQ, lpn);dos.write(N END;System .cwt.printin(交件发送圭毕!); catch (IOExccption c)System.oLft*println(ER:读入失败”e. prin t5t日匚11厂日匸亡(;try fis.closp(); catch (JOException &) / TODO目动生成的匚日tch规e.printStackTrace(); public static void main(String as) new Server().intera匚t(;Clie nt.javapackage worki;import java*
9、 10htalnputstreofi;_|public class Client Socket - null;Scanner in - new Scannsr(Systemin;I .FileOutputStream fos = null;String filcNomc;DdtaOulputSli ediii dos = null;DatalnputStreadis - null;public Client() ss = new SockQt()InetSocket Address isa = new InetSccket Add res s( 127.0.0.1 5036);try (ss,
10、connect(isa);dos = new DataOirtputStream(ssgetOirtpirtStream();dis = new DatalnputStremfss.getlnputSt伽皿; catch (TOException e) Systen.di/t.printing户端旌搂失哄 J ;public void interact() throus iOtxception while(truc)SystefnTout,println(盾帝入一牛文牛若:); fileNme = in.next Linw();byJ b FileName.getBytes()jdos *wr
11、iteb);int Length = Q;byte bb new byte1924*&00;fos - new KileOirtputStrean(b destiriation + fileNme); try t#)ileC(length - dis.read(bb) I二-1) 3ystem, double c)七his.sideA - a;this sideB = b;thiSn side匚=匚;public boalean iLegal()sideC)sideB)sideft)if(sideB + sideA 5ideC&St(sideB - sideA side匚-sideA side
12、A)&(sideG - sideC return true;return false;public double calculat&Areaf)double p = (sideA4-sideB-i-sideC)/2.area = Math.sqrt(p*(p-sideA)*(p-sideB)*(p-si return areajTrian gleFrame.javapackage work3;import java. awt.BordorLayout;;!public class TrlangleFraae extends 3Frame TCPClient tc null;JParel nor
13、th;3Parel center;*JParel south;Button link;Button send;JTextField textA;JTextField textB;JTextField textc;area;public Trlanglercde() tc - new TCPC1lent();link new S);seed i new JButtonCstHD*);textA = new jTextField();textB new 3TextField();textC new DTextfield(); new JTextArea();north = new 3Panel()
14、;center = new JPanel();south = new 0Panel();tmtto;north StLNyout(riew Border Layout ();north add( linkEorderLayout .CFWTFR);centesetLayout(new FlowLyojt();4center.add(nR4 3Latel(9VSldeA:*);n tee 2dd(2xtA: center2dd(npw 3Label(*SldeB:*); center.add(textB);center.add(new 3Label(wSideCM); center add(te
15、xtC);center.addsend);south5etL8yout(new BorderLayout();south add(ar*ea);area.setBorderfnew BevelBcrder(BevelBorder LOWRD);this setTitle(-计算三角形面积“this.setVisible(truc);this setsi2(new Dime ns ion (680/08);this SQTDefdultC10SQ0pGraxlcxi(JFrame EXITONCLOSE);this.dd(north,Bor(terLayout.NORTH);this.add(c
16、nter# BordrLayout.CFNTER); thls.add(south, BorderLayout.50UTH);void INIT()area.setRows(16);textAsetPreferredSize(new Minersion(1G0,30); textB.setPreferredSizefnew Dinersion(100,30);textCsetPreferredSizefnew Dinersion(1G0f30);link addAction listener (new ActionListGnen() Overridepublic void actlonPer
17、formed(ActionEvent g) if (tc.llnk() area.setText(M 服务署连接咸功! J Pt 也址为:卜 tc.ss.grtlnetAddressO *n); arpa.append(口世w “ tc.ss.gptLocalPort() wn); 01 area .setTextO.务君连赛矢败! 十);; sendaddActionListner(new ActionListener()(Overridepublic void actionPerformed(ActionEvent e) String a = nullj b = null c = null
18、j a - textAgef ext()j b = texts,get_ext(); c - textC.get_ext(;Double Sarea = tcinteract(aj bt c)j if (Sarea - -1)area.appended的三个边长不能组咸三角形! ”); elsearea.append(H角形的面积为:* Sarea + nn); ;public static void! main(String args) new TriangleFramef);TCPServcer.javapackage wonk3jimport java ,io*DataInputStre
19、am;|2public class TCPServer ServerSocket ss = null;Socket socket = null;DataInputSt ream dis = null;DataOutputStream dos = null;public TCPServer() try ss = new ServerSocket(6660); socket = ss.accept();dis = new Datalnp uizEtr earn ( socket. get Inputs 七己日111(); dos = new DataOutputStream(socke七*直色士011七口11七5七$幺1!1(); eatch (IOException e) System. out. printin ( 诜口祕占用)ipublic void irrter act ( ) |Triangle t = null;while(true) try double a = dis * readDouble(); double b = dis.readDcuble();double c = di 5
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1