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方法を使う
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();
}
}