《《移動(dòng)通信軟件編程基礎(chǔ)-JAVA》第十二章 實(shí)驗(yàn)手冊(cè)》由會(huì)員分享,可在線閱讀,更多相關(guān)《《移動(dòng)通信軟件編程基礎(chǔ)-JAVA》第十二章 實(shí)驗(yàn)手冊(cè)(7頁(yè)珍藏版)》請(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 編寫(xiě)UDP網(wǎng)絡(luò)程序
u 編寫(xiě)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. 編寫(xiě)兩個(gè)UDP程序,編譯并運(yùn)行
1) 建立文件名為“UDPSend.java”,輸入以下程序代碼。
imp
2、ort .*;
/**
* 使用UDP實(shí)現(xiàn)數(shù)據(jù)發(fā)送
* @1.0版 2008年8月18日
* @author xx
*/
public class UDPSend
{
//主函數(shù)
public static void main(String[] args) throws Exception
{
DatagramSocket ds = new DatagramSocket();//建立發(fā)送數(shù)據(jù)報(bào)套接字
String StrHello = " Hello world!!! ";
/*將要傳送的信息打包為數(shù)據(jù)報(bào)包:
*包數(shù)據(jù)
*包長(zhǎng)
3、度
*目的地址
*目的端口號(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();
}
}
2) 建立文件名為“UDPReceive.java”,輸入以下程序代碼。
import .*;
/**
* 使用UDP實(shí)現(xiàn)數(shù)據(jù)接收
* @1.0版 200
4、8年8月18日
* @author xx
*/
public class UDPReceive
{
public static void main(String[] args) throws Exception
{
DatagramSocket ds = new DatagramSocket(2000);//建立接收數(shù)據(jù)包套接字
byte[] buf = new byte[1024];
DatagramPacket dp = new DatagramPacket(buf,1024);//實(shí)現(xiàn)接收的數(shù)據(jù)報(bào)包
ds.receive(dp);//接收數(shù)據(jù)報(bào)
5、包
//從接收到的數(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. 編寫(xiě)兩個(gè)TCP程序,編譯并運(yùn)行
1) 建立文件名為“TcpClient.java”,輸入以下程序代碼。
import .*;
imp
6、ort java.io.*;
/**
* TCP網(wǎng)絡(luò)程序客戶端
* @1.0版 2008年8月18日
* @author xx
*/
public class TcpClient
{
public static void main(String[] args)
{
try
{
if(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ù)端
Inpu
7、tStream InInfo = S.getInputStream();//網(wǎng)絡(luò)數(shù)據(jù)接收流
OutputStream OutInfo = S.getOutputStream();//網(wǎng)絡(luò)數(shù)據(jù)發(fā)送流
OutInfo.write("OK?。?!".getBytes());//向網(wǎng)絡(luò)發(fā)送信息
byte[] buf = new byte[1024];
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ù)
8、 InInfo.close();//關(guān)閉輸入流
OutInfo.close();//關(guān)閉輸出流
S.close();//關(guān)閉網(wǎng)絡(luò)連接
}
}
catch(Exception e)
{
e.printStackTrace();
}
}
}
2) 建立文件名為“TcpServer.java”,輸入以下程序代碼。
import .*;
import java.io.*;
/**
* TCP網(wǎng)絡(luò)程序服務(wù)器端
* @1.0版 2008年8月18日
* @author xx
*/
public class
9、 TcpServer
{
public static void main(String[] args)
{
try
{
ServerSocket SS = new ServerSocket(6000);//創(chuàng)建服務(wù)器對(duì)象,端口號(hào)6000
Socket S = SS.accept();//創(chuàng)建Socket對(duì)象,實(shí)現(xiàn)網(wǎng)絡(luò)信息發(fā)送與接收
InputStream InInfo = S.getInputStream();//獲得網(wǎng)絡(luò)輸入流
OutputStream OutInfo = S.getOutputStream();//創(chuàng)建網(wǎng)絡(luò)輸出流
10、 OutInfo.write("Welcome to IMTI!!!".getBytes());//如果建立了網(wǎng)絡(luò)連接發(fā)送消息給請(qǐng)求端
byte[] buf = new byte[1024];
int Len = InInfo.read(buf);//從請(qǐng)求端獲取發(fā)送給服務(wù)器端的信息
System.out.println(new String(buf,0,Len));//在控制臺(tái)輸入發(fā)送來(lái)信息。
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í)題一
編寫(xiě)一個(gè)簡(jiǎn)單的UDP的聊天室
窗體底部
第三階段——作業(yè)(課后)
作業(yè)一
使用Swing及其事件實(shí)現(xiàn)一個(gè)帶界面的TCP聊天程序(客戶端/服務(wù)器端)