JAva版単発、放送、マルチキャスト
2232 ワード
概要:
現在のネットワーク通信には、マルチキャスト、ブロードキャスト、マルチキャスト(マルチキャスト)の3つの通信モードがあり、その中でマルチキャストの出現時間が最も遅く、同時にマルチキャストとブロードキャストの利点を備えている.
ユニキャスト:シングルホストとシングルホスト間の通信ブロードキャスト:ホストとネットワーク内のすべてのホストとの通信マルチキャスト:ホストと選択したホストのセットとの通信ユニキャスト:ユニキャストアドレスはIPネットワークで最も一般的です.ユニキャストの宛先アドレスを含むパケットは、特定のホストに送信、一例として、IPアドレスは192.168である.1.5(ソースアドレス)のホストはIPアドレス192.168.1.200(ターゲットアドレス)のサーバーにウェブページを要求する.これは最も一般的な要求方式である.javaインスタンスコードは以下の通りである.我々はUDP通信方式DatagramSocketを採用し、TCPのServer Socketとの違いは である.
参考資料:https://www.cnblogs.com/xujian2014/p/5072215.html
現在のネットワーク通信には、マルチキャスト、ブロードキャスト、マルチキャスト(マルチキャスト)の3つの通信モードがあり、その中でマルチキャストの出現時間が最も遅く、同時にマルチキャストとブロードキャストの利点を備えている.
ユニキャスト:シングルホストとシングルホスト間の通信ブロードキャスト:ホストとネットワーク内のすべてのホストとの通信マルチキャスト:ホストと選択したホストのセットとの通信
ServerSocket , DatagramSocket , UDP
package net;
import java.io.IOException;
import java.net.*;
import java.util.Arrays;
public class DanboDemo {
private static final int MAXREV = 255;
public static void sendMsg(String message) throws IOException {
byte[] msg = message.getBytes();
DatagramSocket client = new DatagramSocket();
InetAddress inetAddr = InetAddress.getLocalHost();
SocketAddress socketAddr = new InetSocketAddress(inetAddr, 8888);
DatagramPacket sendPacket = new DatagramPacket(msg, msg.length,
socketAddr);
client.send(sendPacket);
client.close();
}
public static void received() throws IOException {
DatagramSocket server = new DatagramSocket(8888);
DatagramPacket recvPacket = new DatagramPacket(new byte[MAXREV], MAXREV);
while (true)
{
server.receive(recvPacket);
byte[] receiveMsg = Arrays.copyOfRange(recvPacket.getData(),
recvPacket.getOffset(),
recvPacket.getOffset() + recvPacket.getLength());
System.out.println(" :" + new String(receiveMsg));
server.send(recvPacket);
}
}
public static void main(String[] args) throws IOException {
new Thread(()->{
try {
received();
} catch (IOException e) {
e.printStackTrace();
}
}
).start();
sendMsg("nihao");
sendMsg("kai lai le");
}
}
参考資料:https://www.cnblogs.com/xujian2014/p/5072215.html