1. ソケット Socket
ネットワークドライバーは、アプリケーションプログラミングのためのインターフェースとメカニズムを提供します。これは、アプリケーションがここに商品を置くだけで、商品の配送を完了します。これはアプリケーション内で作成され、バインド メカニズムを通じてドライバーとの関係を確立し、対応する IP とポートを自分自身に伝えます。
Socket は Java のネットワーク プログラミング クラスで、java.net パッケージにあります。
---- DatagramSocket // UDP 通信に使用されます
---- ServerSocket // TCP 通信に使用され、サーバーに使用されます
---- Socket // TCP 通信のサーバーとクライアントに使用されます Duan u 2、UDP ネットワーク プログラム
ineTaddress クラスは相互接続プロトコル (IP) アドレスを表します
// Static INetaddress GetLocalHost () Throws UnknownHostException AME (String Host) は指定されたホストです ホストの IP アドレスを決定します。 ホスト名はマシン名 (「java.sun.com」など)、またはその IP アドレスのテキスト表現にすることができます //static InetAddress[] getAllByName(String host) はホスト名に基づいて IP アドレスを返しますで構成される配列。static void ipDemo() throws UnknownHostException{ InetAddress netAddr=InetAddress.getLocalHost(); //取得本地电脑的一些信息System.out.println(netAddr.toString()); System.out.println(netAddr.getHostAddress()); System.out.println(netAddr.getHostName()); //取得其他电脑的信息InetAddress netAddr2=InetAddress.getByName("DELL-PC"); //这里也可以传IP地址System.out.println(netAddr2.getHostAddress()); //169.254.170.71System.out.println(netAddr2.getHostName()); //DELL-PC //取得百度的地址InetAddress [] ipList=InetAddress.getAllByName("www.baidu.com");for(InetAddress addr:ipList){ System.out.println(addr.toString()); } }
送信end==java.netパッケージをインポートするにはUDP経由でデータを送信する:
1) UDPSocket サービスを確立します
2) データを提供し、データをデータパケットにカプセル化します DatagramPacket (byte[] buf, int length, InetAddress address, int port) //複数のコンストラクターがあります
3) Socket サービスを渡し、データを送信します
4) リソースを閉じる
import java.net.*;class Sender4{//DatagramPacket (byte[] buf, int length, InetAddress address, int port) public static void main(String [] args) throws Exception { byte [] buff="hello cat".getBytes(); DatagramSocket socket=new DatagramSocket(); DatagramPacket packet=new DatagramPacket(buff,buff.length,InetAddress.getByName("192.168.0.103"),8888); socket.send(packet); socket.close(); System.out.println("ok"); } }
--受信終了
1) ソケットサービスを作成し、特定のポートでリッスンするように指定します
3 ) パッケージからデータを取得します
4) リソースを閉じる
import java.net.*;class Receive4 {public static void main(String [] args) throws Exception { DatagramSocket socket=new DatagramSocket(8888); //别忘了端口号byte[] buff=new byte[1024] ; DatagramPacket packet=new DatagramPacket(buff,buff.length); socket.receive(packet); String senderIp=packet.getAddress().getHostAddress(); String senderData=new String(packet.getData(),0,packet.getLength());int senderPort=packet.getPort(); System.out.println(senderIp+"---"+senderData+"---"+senderPort); socket.close(); } }//例 2、周期的な送受信
import java.net.*;import java.io.*;class NewSender{public static void main(String [] args) throws Exception { System.out.println("发送端启动了"); DatagramSocket socket=new DatagramSocket(); BufferedReader br=new BufferedReader(new InputStreamReader(System.in)); //包装键盘输入流String str=null;while((str=br.readLine())!=null){byte [] buff=str.getBytes(); DatagramPacket packet=new DatagramPacket(buff,buff.length,InetAddress.getByName("127.0.0.1"),9000); socket.send(packet); } br.close(); socket.close(); } }
import java.net.*;class NewReceiver{public static void main(String [] args) throws Exception { DatagramSocket socket=new DatagramSocket(9000); System.out.println("接收端启动了"); while(true){ byte [] buff=new byte[1024] ; DatagramPacket packet=new DatagramPacket(buff,buff.length); socket.receive(packet); String senderIp=packet.getAddress().getHostAddress(); int sendPort=packet.getPort(); String msg= new String(packet.getData(),0,packet.getLength()); System.out.println(senderIp+":"+sendPort+":"+msg); } } }例 3: マルチスレッドのチャット ルーム プログラム
りー
りー
りー
以上がJavaネットワークプログラミング例の詳細な説明の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。