《《移動(dòng)通信軟件編程基礎(chǔ)-JAVA》第十二章 實(shí)驗(yàn)手冊(cè)》由會(huì)員分享,可在線閱讀,更多相關(guān)《《移動(dòng)通信軟件編程基礎(chǔ)-JAVA》第十二章 實(shí)驗(yàn)手冊(cè)(7頁珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、第12章 網(wǎng)絡(luò)編程第12章 網(wǎng)絡(luò)編程 【實(shí)驗(yàn)?zāi)繕?biāo)】 完成本章的內(nèi)容以后,您將達(dá)到:u 掌握網(wǎng)絡(luò)編程的基本概念u 編寫UDP網(wǎng)絡(luò)程序u 編寫TCP網(wǎng)絡(luò)程序本章實(shí)驗(yàn)給出了全面的操作步驟,請(qǐng)學(xué)生按照給出的步驟獨(dú)立完成實(shí)驗(yàn),以達(dá)到要求的實(shí)驗(yàn)?zāi)繕?biāo)。 第一階段指導(dǎo)學(xué)習(xí)(40分鐘)1. 編寫兩個(gè)UDP程序,編譯并運(yùn)行1) 建立文件名為“UDPSend.java”,輸入以下程序代碼。import .*;/* * 使用UDP實(shí)現(xiàn)數(shù)據(jù)發(fā)送 * 1.0版 2008年8月18日 * author xx */public class UDPSend/主函數(shù)public static void main(String a
2、rgs) throws ExceptionDatagramSocket ds = new DatagramSocket();/建立發(fā)送數(shù)據(jù)報(bào)套接字String StrHello = Hello world! ;/*將要傳送的信息打包為數(shù)據(jù)報(bào)包: *包數(shù)據(jù) *包長度 *目的地址 *目的端口號(hào)*/DatagramPacket dp = new DatagramPacket(StrHello.getBytes(),StrHello.length(),InetAddress.getByName(127.0.0.1),2000);ds.send(dp);/使用數(shù)據(jù)包套按字發(fā)送數(shù)據(jù)報(bào)包ds.close()
3、;2) 建立文件名為“UDPReceive.java”,輸入以下程序代碼。import .*;/* * 使用UDP實(shí)現(xiàn)數(shù)據(jù)接收 * 1.0版 2008年8月18日 * author xx */public class UDPReceivepublic static void main(String args) throws ExceptionDatagramSocket ds = new DatagramSocket(2000);/建立接收數(shù)據(jù)包套接字byte buf = new byte1024;DatagramPacket dp = new DatagramPacket(buf,1024)
4、;/實(shí)現(xiàn)接收的數(shù)據(jù)報(bào)包ds.receive(dp);/接收數(shù)據(jù)報(bào)包/從接收到的數(shù)據(jù)報(bào)包取出數(shù)據(jù)String StrRecv = new String(dp.getData(),0,dp.getLength() + from + dp.getAddress().getHostAddress() + : + dp.getPort();System.out.println(StrRecv);ds.close();/關(guān)閉接收數(shù)據(jù)報(bào)套接字2. 編寫兩個(gè)TCP程序,編譯并運(yùn)行1) 建立文件名為“TcpClient.java”,輸入以下程序代碼。import .*;import java.io.*;/* *
5、 TCP網(wǎng)絡(luò)程序客戶端 * 1.0版 2008年8月18日 * author xx */public class TcpClientpublic static void main(String args)tryif(args.length 2)/創(chuàng)建Socket對(duì)象,實(shí)現(xiàn)網(wǎng)絡(luò)通信Socket S = new Socket(InetAddress.getByName(127.0.0.1),6000);/連接服務(wù)端InputStream InInfo = S.getInputStream();/網(wǎng)絡(luò)數(shù)據(jù)接收流OutputStream OutInfo = S.getOutputStream();/網(wǎng)
6、絡(luò)數(shù)據(jù)發(fā)送流OutInfo.write(OK!.getBytes();/向網(wǎng)絡(luò)發(fā)送信息byte buf = new byte1024;int Len = InInfo.read(buf);/接收從網(wǎng)絡(luò)接收到的數(shù)據(jù)System.out.println(new String(buf,0,Len);/在控制臺(tái)輸出網(wǎng)絡(luò)接收到的數(shù)據(jù)InInfo.close();/關(guān)閉輸入流OutInfo.close();/關(guān)閉輸出流S.close();/關(guān)閉網(wǎng)絡(luò)連接catch(Exception e)e.printStackTrace();2) 建立文件名為“TcpServer.java”,輸入以下程序代碼。impor
7、t .*;import java.io.*;/* * TCP網(wǎng)絡(luò)程序服務(wù)器端 * 1.0版 2008年8月18日 * author xx */public class TcpServerpublic static void main(String args)tryServerSocket SS = new ServerSocket(6000);/創(chuàng)建服務(wù)器對(duì)象,端口號(hào)6000Socket S = SS.accept();/創(chuàng)建Socket對(duì)象,實(shí)現(xiàn)網(wǎng)絡(luò)信息發(fā)送與接收InputStream InInfo = S.getInputStream();/獲得網(wǎng)絡(luò)輸入流OutputStream OutI
8、nfo = S.getOutputStream();/創(chuàng)建網(wǎng)絡(luò)輸出流OutInfo.write(Welcome to IMTI!.getBytes();/如果建立了網(wǎng)絡(luò)連接發(fā)送消息給請(qǐng)求端byte buf = new byte1024;int Len = InInfo.read(buf);/從請(qǐng)求端獲取發(fā)送給服務(wù)器端的信息System.out.println(new String(buf,0,Len);/在控制臺(tái)輸入發(fā)送來信息。InInfo.close();/關(guān)閉網(wǎng)絡(luò)輸入流OutInfo.close();/關(guān)閉網(wǎng)絡(luò)輸出流S.close();/關(guān)閉Socket連接SS.close();/關(guān)閉ServerSocket連接catch(Exception e)e.printStackTrace();第二階段練習(xí)(40分鐘)習(xí)題一編寫一個(gè)簡(jiǎn)單的UDP的聊天室窗體底部第三階段作業(yè)(課后)作業(yè)一使用Swing及其事件實(shí)現(xiàn)一個(gè)帶界面的TCP聊天程序(客戶端/服務(wù)器端)