Java学習14-UDPネットワークプログラミング/ネットワーク知識の結び目

3189 ワード

1.socket=IP+Port
2.よくあるポート番号http:80、ftp:21、telnet:23
3.システムはポート番号0-1023を保持し、ポート番号範囲0-65535
4.Javaが提供するネットワーク機能の4つのカテゴリ:InetAddres:ネットワーク上のハードウェアリソースURLを識別するために使用されます.統一リソースロケータは、URLを通じて直接ネットワーク上のデータSocketsを読み込むことができます.TCPプロトコルを使用してネットワーク通信を実現するソケットに関するクラスDatagram:UDPプロトコルを使用してデータをデータグラムに保存し、ネットワークを介して通信します.
5.5層プロトコルモデル:物理層(網線)、データリンク層(MAC)、ネットワーク層(IP)、トランスポート層(ポート)、アプリケーション層
http://blog.csdn.net/suoxd123/article/details/11475585
http://blog.csdn.net/liuaibing/article/details/8591019
6.UDPサーバー
--Datagram Socket ds指定ポート番号
--new Datagram Packetは、受信データの配列と配列サイズを指定します.
--ds.receive(pa)クライアントデータをDatagramPacketパケットに受信する
――クライアントから新しいパケットを送信することに応答して、すでに受信したパケットを通じてIPアドレスとポート番号情報を取得し、send方法
UDPクライアント
--配列に格納された内容をデータパッケージに挿入するnew DatagramPacket(data,data.length,address,port)は、パケット配列、サイズ、アドレス、ポート番号を指定します.
--新規Datagram Socket socket=new Datagram Socket()TCPは、ポート番号とアドレスを指定する必要があります.パケットを送信します.
--サービス端末に応答してreceive方法を使う
package com.imooc;

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;

/*
 *     ,    UDP     
 */
public class UDPServer {
	public static void main(String[] args) throws IOException {
		/*
		 *           
		 */
		//1.      DatagramSocket,    
		DatagramSocket socket=new DatagramSocket(8800);
		//2.     ,            
		byte[] data =new byte[1024];//      ,           
		DatagramPacket packet=new DatagramPacket(data, data.length);
		//3.          
		System.out.println("        ,         ");
		socket.receive(packet);//                 
		//4.    
		String info=new String(data, 0, packet.getLength());
		System.out.println("     ,    :"+info);
		
		/*
		 *         
		 */
		//1.        、   、  
		InetAddress address=packet.getAddress();
		int port=packet.getPort();
		byte[] data2="   !".getBytes();
		//2.     ,         
		DatagramPacket packet2=new DatagramPacket(data2, data2.length, address, port);
		//3.     
		socket.send(packet2);
		//4.    
		socket.close();
	}
}
package com.imooc;

import java.io.IOException;
import java.net.DatagramPacket;
import java.net.DatagramSocket;
import java.net.InetAddress;
import java.net.SocketException;
import java.net.UnknownHostException;

/*
 *    
 */
public class UDPClient {
	public static void main(String[] args) throws IOException {
		/*
		 *          
		 */
		//1.        、   、  
		InetAddress address=InetAddress.getByName("localhost");
		int port=8800;
		byte[] data="   :admin;  :123".getBytes();
		//2.     ,         
		DatagramPacket packet=new DatagramPacket(data, data.length, address, port);
		//3.  DatagramSocket  
		DatagramSocket socket=new DatagramSocket();
		//4.          
		socket.send(packet);
		
		/*
		 *            
		 */
		//1.     ,             
		byte[] data2=new byte[1024];
		DatagramPacket packet2=new DatagramPacket(data2, data2.length);
		//2.          
		socket.receive(packet2);
		//3.    
		String reply=new String(data2, 0, packet2.getLength());
		System.out.println("     ,    :"+reply);
		//4.    
		socket.close();
	}
}