看了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();
} }