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