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

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

UDP接收端和发送端_Socket编程

發布時間:2024/4/13 编程问答 44 豆豆
生活随笔 收集整理的這篇文章主要介紹了 UDP接收端和发送端_Socket编程 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
  • UDP接收端


?

  • 接收端啟動文件
  • 1 import java.net.DatagramSocket; 2 import java.net.SocketException; 3 4 public class Server { 5 6 public static void main(String[] args){ 7 8 try { 9 10 DatagramSocket socket = new DatagramSocket(9999); 11 ServerThread sThread = new ServerThread(socket); 12 sThread.start(); 13 14 } catch (SocketException e) { 15 16 e.printStackTrace(); 17 } 21 } 24 }

    ?

  • 接收端線程文件
  • 1 import java.io.IOException; 2 import java.net.DatagramPacket; 3 import java.net.DatagramSocket; 4 import java.net.InetAddress; 5 import java.net.SocketException; 6 7 public class ServerThread extends Thread{ 8 9 DatagramSocket socket = null; 10 11 public ServerThread(DatagramSocket socket) { 12 super(); 13 this.socket = socket; 14 } 15 16 @Override 17 public void run() { 18 super.run(); 19 20 try { 21 // socket = new DatagramSocket(9999); 22 23 //建立數據包 24 byte []buf = new byte[1024]; 25 DatagramPacket packet = new DatagramPacket(buf, buf.length); 26 System.out.println( "服務器開始運行...." ); 27 while(true) { 28 29 //接收客戶端數據 30 socket.receive(packet); 31 32 //讀取數據包的內容 33 String data = new String(buf, 0, packet.getLength()); 34 System.out.println("我是服務器,接收到客戶端的消息:"+data); 35 36 //發送,先獲取客戶端信息 37 InetAddress address = packet.getAddress(); 38 int port = packet.getPort(); 39 byte []str = "服務器響應:你好".getBytes(); 40 DatagramPacket packet2 = new DatagramPacket(str, str.length,address,port); 41 socket.send(packet2); 42 43 } 44 45 } catch (SocketException e) { 46 e.printStackTrace(); 47 } catch (IOException e) { 48 // TODO Auto-generated catch block 49 e.printStackTrace(); 50 } 51 finally { 52 socket.close(); 53 } 54 55 } 56 }

    ?

    • UDP發送端

    ?


    ?

    1 import java.io.IOException; 2 import java.net.DatagramPacket; 3 import java.net.DatagramSocket; 4 import java.net.InetAddress; 5 import java.net.SocketException; 6 import java.text.SimpleDateFormat; 7 import java.util.Date; 8 import java.util.Scanner; 9 10 public class Client { 11 12 public static void main(String[] args) throws IOException{ 13 14 DatagramSocket socket = null; 15 16 try { 17 18 socket = new DatagramSocket();//udp不用端口號 19 20 while(true) { 21 //時間 22 Date myDate = new Date(); 23 SimpleDateFormat dFormat = new SimpleDateFormat("HH:mm:ss"); 24 //發送信息 25 InetAddress address = InetAddress.getLocalHost();//取得服務器地址 26 int port = 9999; 27 28 Scanner input = new Scanner(System.in);//改為輸入發送 29 String inContent ="\r\n" + dFormat.format(myDate) + "\r\n" +"黃哥哥說:"+ input.next(); 30 31 byte []str = inContent.getBytes(); 32 DatagramPacket packet2 = new DatagramPacket(str, str.length,address,port);//InetAddress.getByName( "192.168.4.198" ) 33 socket.send(packet2); 34 35 //接收信息 36 //建立數據報包 37 byte []buf = new byte[1024]; 38 DatagramPacket packet = new DatagramPacket(buf, buf.length); 39 40 //接收服務器信息 41 socket.receive(packet); 42 43 //讀取數據包的內容 44 String data = new String(buf, 0, packet.getLength()); 45 System.out.println(data); 46 47 } 48 } catch (SocketException e) { 49 // TODO Auto-generated catch block 50 e.printStackTrace(); 51 }finally { 52 //關閉 53 socket.close(); 54 } 55 56 } 57 }

    ?

    ?

    ?

    • 運行效果


    ?

  • 發送端發送消息,接收端回應
  • 2.接收端收到的消息

    轉載于:https://www.cnblogs.com/ynhwl/p/9434219.html

    總結

    以上是生活随笔為你收集整理的UDP接收端和发送端_Socket编程的全部內容,希望文章能夠幫你解決所遇到的問題。

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