黑馬程序員——UDP接收端與發送端

 

看了Socket的網絡編程,感受這個東西好神奇啊java

下面是Socket的發送端:編程

/*  Socket編程,發送端  網絡

1.創建Socket發送端的端口,DatagramSocket  post

2.將數據進行封裝,加入接收端地址和端口號,DatagramPacket  .net

3.發送數據包send()blog

 4.關閉資源ip

*/ import java.io.*; import java.net.*;資源

public class SocketSend{get

public static void main(String [] args) throws Exception{   網絡編程

//建立發送端端口   DatagramSocket datagramSocket = new DatagramSocket();

     BufferedReader bufferedReader = new BufferedReader(new InputStreamReader(System.in));

  //建立數據,並將數據封裝打包,加入接收端地址和端口號   String str = null;

  while((str = bufferedReader.readLine())!=null){      

 //DatagramPacket(byte[] buf, int length, InetAddress address, int port)   

byte[] buf = str.getBytes();  

 //192.168.1.0是網絡地址,即網段號。  

 //若是在局域網的廣播地址255裏發送消息,該段內的全部IP地址均可以接收到這個消息。   

DatagramPacket datagreamPacket = new DatagramPacket(buf,buf.length,InetAddress.getByName("192.168.0.101"),20000);  

 //發送   

datagramSocket.send(datagreamPacket);     

 if("over".equals(str)){     break;    }   }   

//關閉資源   

datagramSocket.close();  

} }

 

下面是接收端:

//Socket接收端 /*

1.建立接收端端口,DatagramSocket,而且指定端口號  

2.建立數據包,用來存放接收到的數據包,new DatagramPacket(buf,buf.length)   ,receive(DatagramPacket datagramPacket)  

3.提取數據包中的數據

 4,關閉資源。

*/

import java.net.*;

public class  SocketReceive{  

public static void main(String [] args) throws Exception{  

 //建立端口號   

DatagramSocket datagramSocket = new DatagramSocket(20000);

  //DatagramPacket(byte[] buf, int length)  

 //建立數據包,存放接收到的數據包   

byte[] buf = new byte[1024];

  while(true){

  DatagramPacket datagramPacket = new DatagramPacket(buf,buf.length);  

 datagramSocket.receive(datagramPacket);   

//獲取數據包中的數據   

String ip = datagramPacket.getAddress().getHostAddress();      

String data = new String(datagramPacket.getData(),0,datagramPacket.getLength());

  int port = datagramPacket.getPort();      

System.out.println(ip+"..."+data+"..."+port);  

 if("over".equals(data)){    break;   }   }   

//關閉資源  

 datagramSocket.close();

 } }

相關文章
相關標籤/搜索