生活随笔
收集整理的這篇文章主要介紹了
实验八网络程序设计(网络编程)_JAVA
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
實驗目的:
(1)掌握網絡通信的概念。
(2)掌握InetAddress、URL類的使用。
(2)掌握JAVA利用 TCP協議和UDP協議進行通信的網絡編程方法。
實驗內容
1、從鍵盤輸入網址,讀取網址內容,在顯示器進行顯示,并存儲為文件test.html。
package sdut
.cs
;import java
.io
.FileOutputStream
;
import java
.io
.IOException
;
import java
.io
.InputStream
;
import java
.io
.OutputStream
;
import java
.net
.URL
;
import java
.util
.Scanner
;public class DemoTest {public static void main(String
[] args
) throws IOException
{Scanner reader
= new Scanner(System
.in
);String str
= reader
.next();URL url
= new URL(str
);InputStream is
= url
.openStream();OutputStream os
= new FileOutputStream("C:\\Users\\Administrator\\Desktop\\test.html");byte[] bytes
= new byte[1024];int len
;while ((len
= is
.read(bytes
)) != -1) {os
.write(bytes
, 0, len
);}is
.close();os
.close();reader
.close();}}
2、TCP Socket編程實現服務器和客戶端的交互:
(1)服務器端先運行,利用循環時刻為客戶端提供服務;
(2)客戶端與服務器接通后,從鍵盤上輸入若干字符,傳到服務器,服務器在控制臺顯示所收收到的數據,并向客戶端反饋信息"I have received ******",此次通話結束;
(3)客戶端發送"quit"字符串,服務器終止程序。
package sdut
.cs
;import java
.io
.IOException
;
import java
.io
.InputStream
;
import java
.io
.OutputStream
;
import java
.net
.ServerSocket
;
import java
.net
.Socket
;public class TCPServer {public static void main(String
[] args
) throws IOException
{ServerSocket ss
= new ServerSocket(9999);InputStream is
;OutputStream os
;Socket socket
;while (true) {socket
= ss
.accept(); System
.out
.println("server:" + socket
);is
= socket
.getInputStream();StringBuffer buffer
= new StringBuffer();byte[] bytes
= new byte[10];int len
= 0;while ((len
= is
.read(bytes
)) != -1) {String str
= new String(bytes
, 0, len
);buffer
.append(str
);}System
.out
.println(buffer
);socket
.shutdownInput();os
= socket
.getOutputStream();if (buffer
.toString().equals("quit")) {os
.write(("I have received:服務器將停止服務").getBytes());socket
.shutdownOutput();break;} else {os
.write(("I have received:" + buffer
).getBytes());System
.out
.println("服務器寫出數據完成!");}socket
.shutdownOutput();}is
.close();os
.close();socket
.close();ss
.close();}}
package sdut
.cs
;import java
.io
.IOException
;
import java
.io
.InputStream
;
import java
.io
.OutputStream
;
import java
.net
.InetAddress
;
import java
.net
.Socket
;
import java
.net
.UnknownHostException
;
import java
.util
.Scanner
;public class TCPClient {public static void main(String
[] args
) throws UnknownHostException
, IOException
{Scanner reader
= new Scanner(System
.in
);Socket socket
= new Socket(InetAddress
.getLocalHost(), 9999);System
.out
.println("client:" + socket
);OutputStream os
= socket
.getOutputStream();String Clientstr
= reader
.nextLine();os
.write(Clientstr
.getBytes());System
.out
.println("客戶端讀取到數據!" + Clientstr
);socket
.shutdownOutput();InputStream is
= socket
.getInputStream();StringBuffer buffer
= new StringBuffer();byte[] bytes
= new byte[10];int len
= 0;while ((len
= is
.read(bytes
)) != -1) {String str
= new String(bytes
, 0, len
);buffer
.append(str
);}System
.out
.println(buffer
);is
.close();os
.close();socket
.close();reader
.close();}}
3、UDP Socket編程實現服務器和客戶端的交互:
(1)服務器端先運行;
(2)客戶端向服務器端發送數據"Hello World!",傳到服務器;
(3)務器打印該信息的同時,向客戶端發出信息"OK";
(4)客戶端收到信息后打印,通信結束。
package sdut
.cs
;import java
.io
.IOException
;
import java
.net
.DatagramPacket
;
import java
.net
.DatagramSocket
;
import java
.net
.InetAddress
;
public class UDPReceiver {public static void main(String
[] args
) throws IOException
{@SuppressWarnings("resource")DatagramSocket server
= new DatagramSocket(9999);byte[] bytes
= new byte[1024];DatagramPacket packet
= new DatagramPacket(bytes
, bytes
.length
);System
.out
.println("等待接收數據...");server
.receive(packet
);String str
= new String(packet
.getData(), 0, packet
.getLength());System
.out
.println("成功收到信息:" + str
);String strout
= "發送成功 OK";DatagramPacket packetOut
= new DatagramPacket(strout
.getBytes(), strout
.getBytes().length
,InetAddress
.getLocalHost(), 3000);server
.send(packetOut
);}}
package sdut
.cs
;import java
.io
.IOException
;
import java
.net
.DatagramPacket
;
import java
.net
.DatagramSocket
;
import java
.net
.InetAddress
;public class UDPSender {public static void main(String
[] args
) throws IOException
{DatagramSocket client
= new DatagramSocket(3000);String str
= "Hello World!";DatagramPacket packet
= new DatagramPacket(str
.getBytes(), str
.getBytes().length
, InetAddress
.getLocalHost(),9999);System
.out
.println("開始發送消息:" + str
);client
.send(packet
);byte[] bytes
= new byte[1024];DatagramPacket packetIn
= new DatagramPacket(bytes
, bytes
.length
);client
.receive(packetIn
);String strIn
= new String(packetIn
.getData(), 0, packetIn
.getLength());System
.out
.println(strIn
);client
.close();}}
總結
以上是生活随笔為你收集整理的实验八网络程序设计(网络编程)_JAVA的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。