《《移動通信軟件編程基礎(chǔ)-JAVA》第十二章 實驗手冊》由會員分享,可在線閱讀,更多相關(guān)《《移動通信軟件編程基礎(chǔ)-JAVA》第十二章 實驗手冊(7頁珍藏版)》請在裝配圖網(wǎng)上搜索。
1、第12章 網(wǎng)絡(luò)編程
第12章 網(wǎng)絡(luò)編程
【實驗?zāi)繕恕?
完成本章的內(nèi)容以后,您將達到:
u 掌握網(wǎng)絡(luò)編程的基本概念
u 編寫UDP網(wǎng)絡(luò)程序
u 編寫TCP網(wǎng)絡(luò)程序本章實驗給出了全面的操作步驟,請學生按照給出的步驟獨立完成實驗,以達到要求的實驗?zāi)繕恕?
· 第一階段——指導學習(40分鐘)
1. 編寫兩個UDP程序,編譯并運行
1) 建立文件名為“UDPSend.java”,輸入以下程序代碼。
imp
2、ort .*;
/**
* 使用UDP實現(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ù)報套接字
String StrHello = " Hello world!!! ";
/*將要傳送的信息打包為數(shù)據(jù)報包:
*包數(shù)據(jù)
*包長
3、度
*目的地址
*目的端口號
*/
DatagramPacket dp = new DatagramPacket(StrHello.getBytes(),StrHello.length(),
InetAddress.getByName("127.0.0.1"),2000);
ds.send(dp);//使用數(shù)據(jù)包套按字發(fā)送數(shù)據(jù)報包
ds.close();
}
}
2) 建立文件名為“UDPReceive.java”,輸入以下程序代碼。
import .*;
/**
* 使用UDP實現(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);//實現(xiàn)接收的數(shù)據(jù)報包
ds.receive(dp);//接收數(shù)據(jù)報
5、包
//從接收到的數(shù)據(jù)報包取出數(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ù)報套接字
}
}
2. 編寫兩個TCP程序,編譯并運行
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對象,實現(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));//在控制臺輸出網(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ù)器對象,端口號6000
Socket S = SS.accept();//創(chuàng)建Socket對象,實現(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ā)送消息給請求端
byte[] buf = new byte[1024];
int Len = InInfo.read(buf);//從請求端獲取發(fā)送給服務(wù)器端的信息
System.out.println(new String(buf,0,Len));//在控制臺輸入發(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();
}
}
}
第二階段——練習(40分鐘)
習題一
編寫一個簡單的UDP的聊天室
窗體底部
第三階段——作業(yè)(課后)
作業(yè)一
使用Swing及其事件實現(xiàn)一個帶界面的TCP聊天程序(客戶端/服務(wù)器端)