日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程语言 > java >内容正文

java

Java 学习之网络编程案例

發布時間:2025/3/21 java 18 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Java 学习之网络编程案例 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

網絡編程案例

一,概念

1,網絡編程不等于網站編程

2,編程只和傳輸層打交道,即TCP和UDP兩個協議

二,案例

1,TCP實現點對點的聊天

Server端:兩個輸入流:讀客戶端和控制臺,一個輸出端:輸出客戶端

?

public class ChatServer {public static void main(String[] args) {try {ServerSocket serverSocket=new ServerSocket(44432);Socket socket=serverSocket.accept();//獲取客戶端的連接信息BufferedReader bufferedReader=new BufferedReader(new InputStreamReader(socket.getInputStream()));//client 的輸入內容PrintWriter printWriter =new PrintWriter(new OutputStreamWriter(socket.getOutputStream()));//往client輸出內容System.out.println("client say:"+bufferedReader.readLine());Scanner bufferedReader1=new Scanner(System.in);//控制臺輸入內容String message=bufferedReader1.next();while(!message.equals("end")) {printWriter.println(message);//send message to client printWriter.flush();System.out.println("client say:"+bufferedReader.readLine());// get message from clientmessage=bufferedReader1.next();}bufferedReader.close();printWriter.close();bufferedReader1.close();} catch (IOException e) {e.printStackTrace();}} }

?

Client端:兩個輸入流:讀服務端和控制臺,一個輸出端:輸出服務端

public class ChatClient {public static void main(String[] args) {try {Socket socket=new Socket("127.0.0.1",44432);//獲取服務端的唯一標識PrintWriter printWriter=new PrintWriter(new OutputStreamWriter(socket.getOutputStream()));//BufferedWriter流也可以BufferedReader bufferedReader=new BufferedReader(new InputStreamReader(socket.getInputStream()));BufferedReader bufferedReader1=new BufferedReader(new InputStreamReader(System.in));String message=bufferedReader1.readLine();while (!message.equals("end")){printWriter.write(message+"\r\n");//加\r\n,因為讀取時是用readLine方式 ,等同于println方式printWriter.flush();//必須flush,不然另一端讀不到。。。System.out.println("server say:"+bufferedReader.readLine());message=bufferedReader1.readLine();}bufferedReader.close();bufferedReader1.close();} catch (IOException e) {e.printStackTrace();}} }

2,UDP 實現高精度數字傳輸 ? 通過數據報形式

接收端:

public class UdpServer {public static void main(String[] args) {byte[] buf=new byte[1024];//存儲接受數據報的容器DatagramPacket datagramPacket=new DatagramPacket(buf,buf.length);//數據報內容寫入容器try {DatagramSocket datagramSocket=new DatagramSocket(44423);while (true){datagramSocket.receive(datagramPacket);//接收發送方的數據報ByteArrayInputStream byteArrayInputStream=new ByteArrayInputStream(buf);DataInputStream dataInputStream=new DataInputStream(byteArrayInputStream);System.out.println("clint say:"+dataInputStream.readDouble());}} catch (Exception e) {e.printStackTrace();}} }

發送端:

public class UdpClient {public static void main(String[] args) {double n=10000.00;try {ByteArrayOutputStream byteArrayOutputStream=new ByteArrayOutputStream();DataOutputStream dataOutputStream=new DataOutputStream(byteArrayOutputStream);dataOutputStream.writeDouble(n);//創建代有數據報內容和目的地址DatagramPacket datagramPacket=new DatagramPacket(byteArrayOutputStream.toByteArray(),byteArrayOutputStream.toByteArray().length,new InetSocketAddress("127.0.0.1",44423));DatagramSocket datagramSocket=new DatagramSocket(53421);//指定發送的端口 datagramSocket.send(datagramPacket);} catch (Exception e) {e.printStackTrace();}} }

?

?

?

?

?

?

?

轉載于:https://www.cnblogs.com/ksWorld/p/6775202.html

總結

以上是生活随笔為你收集整理的Java 学习之网络编程案例的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。