首页后端开发JAVAudp广播代码java udp 广播地址

udp广播代码java udp 广播地址

时间2023-04-05 05:48:01发布访客分类JAVA浏览502
导读:java 实现 UDP连接的源程序 import java.io.*;import java.lang.*;import java点虐.*;public class uclient{ private DatagramSocket cli;...

java 实现 UDP连接的源程序

import java.io.*;

import java.lang.*;

import java点虐.*;

public class uclient

{

private DatagramSocket cli;

private DatagramPacket pac;

private byte sb[];

private String sen;

public uclient()

{

Init();

}

public void Init()

{

try

{

//指定端口号,避免与其他应用程序发生冲突

cli=new DatagramSocket(10002);

sb=new byte[1024];

sen="UDP方式发送数据";

sb=sen.getBytes();

pac=new DatagramPacket(sb,sb.length,InetAddress.getByName("localhost"),10005);

cli.send(pac);

}

catch(SocketException se)

{

se.printStackTrace();

}

catch(IOException ie)

{

ie.printStackTrace();

}

}

public static void main(String args[])

{

new uclient();

}

}

接收端数据:

//加以改进代码,可以改变接收方式

import java.io.*;

import java.lang.*;

import java点虐.*;

public class userve

{

private DatagramSocket ser;

private DatagramPacket pac;

private byte rb[];

private String rev;

public userve()

{

Init();

}

public void Init()

{

try

{

ser=new DatagramSocket(10005);

rb=new byte[1024];

pac=new DatagramPacket(rb,rb.length);

rev="";

int i=0;

while(i==0)//无数据,则循环

{

ser.receive(pac);

i=pac.getLength();

//接收数据

if(i0)

{

//指定接收到数据的长度,可使接收数据正常显示,开始时很容易忽略这一点

rev=new String(rb,0,pac.getLength());

System.out.println(rev);

i=0; //循环接收

}

}

}

catch(Exception e)

{

e.printStackTrace();

}

}

public static void main(String args[])

{

new userve();

}

}

java 怎么用UDP实时接收数据?

我自己写的代码:

import java.io.IOException;

import java点虐.DatagramPacket;

import java点虐.DatagramSocket;

import java点虐.InetAddress;

import java点虐.SocketException;

import java点虐.UnknownHostException;

public class UdpRecvDemo

{

    public static void main(String[] args) throws IOException

    {

        Recv();

    }

    

    public static void Recv() throws IOException

    {

        System.out.println("接受开始......");

        DatagramSocket ds = new DatagramSocket(3388);

        while(true)

        {

            byte[]buf = new byte[1024];

            DatagramPacket dp = new DatagramPacket(buf,buf.length);

            ds.receive(dp);

            System.out.println(ds);

            String ip = dp.getAddress().getHostAddress();

            int port = dp.getPort();

            String text = new String(dp.getData(),0,dp.getLength());

            if(text.equals("exit"))

                {

                    System.out.println(ip+"退出会话......");

                    break;

                }

            System.out.println(ip+":"+port+"===me "+text);

        }

        ds.close();

    }

}

急求一个关于UDP的JAVA实现多人聊天源代码

import java.io.InputStream;

import java.io.DataInputStream;

import java.io.InputStreamReader;

import java.io.OutputStream;

import java.io.DataOutputStream;

import java.io.BufferedReader;

import java点虐.ServerSocket;

import java点虐.Socket;

import java.io.IOException;

import java.util.Date;

class Server

{

public Server()

{

try

{

ServerSocket s=new ServerSocket(8888);

Socket ss=s.accept();

OutputStream out=ss.getOutputStream();

DataOutputStream dout=new DataOutputStream(out);

InputStream in=ss.getInputStream();

DataInputStream din=new DataInputStream(in);

System.out.print(din.readUTF()+"!");

dout.writeUTF("你已经连接到服务器"+"\t"+"你的地址:"+ss.getInetAddress()+"\t"

+"你的链接端口:"+ss.getLocalPort()+"\n");

new ReadMessage(din).start();

new SendMessage(dout).start();

}

catch (IOException e)

{

e.printStackTrace();

}

}

public static void main(String[] args)

{

new Server();

}

}

//接受客户端信息

class ReadMessage extends Thread

{

private DataInputStream din;

public ReadMessage(DataInputStream din)

{

this.din=din;

}

public void run()

{

String str;

try

{

while (true)

{

str=din.readUTF();

System.out.println(new Date().toLocaleString()+"客户端说:"+str);

if (str.equals("bye"))

{

System.out.println("客户端下线!");

break;

}

}

}

catch (IOException e)

{

e.printStackTrace();

}

}

}

// 发出服务器信息

class SendMessage extends Thread

{

private DataOutputStream dout;

public SendMessage(DataOutputStream dout)

{

this.dout=dout;

}

public void run()

{

InputStreamReader inr=new InputStreamReader(System.in);

BufferedReader buf=new BufferedReader(inr);

String str;

try

{

while(true)

{

str=buf.readLine();

dout.writeUTF(str);

if (str.equals("bye"))

{

System.out.println("服务器退出!");

System.exit(1);

}

}

}

catch (IOException e)

{

e.printStackTrace();

}

}

}

import java.io.InputStream;

import java.io.DataInputStream;

import java.io.InputStreamReader;

import java.io.OutputStream;

import java.io.DataOutputStream;

import java.io.BufferedReader;

import java点虐.Socket;

import java.io.IOException;

import java.util.Date;

class Client

{

public Client()

{

try

{

Socket s=new Socket("192.168.1.2",8888);

InputStream in=s.getInputStream();

DataInputStream din=new DataInputStream(in);

OutputStream out=s.getOutputStream();

DataOutputStream dout=new DataOutputStream(out);

dout.writeUTF("服务器你好!我是客户端");

System.out.println(din.readUTF());

new Thread(new SenderMessage(dout)).start();

new Thread(new ReaderMessage(din)).start();

}

catch (IOException e)

{

e.printStackTrace();

}

}

public static void main(String[] args)

{

new Client();

}

}

class ReaderMessage implements Runnable

{

private DataInputStream din;

public ReaderMessage(DataInputStream din)

{

this.din=din;

}

public void run()

{

String str;

try

{

while(true)

{

str=din.readUTF();

System.out.println(new Date().toLocaleString()+"服务器说:"+str);

if (str.equals("bye"))

{

System.out.println("服务器已经关闭,此程序自动退出!");

break;

}

}

}

catch (IOException e)

{

e.printStackTrace();

}

}

}

class SenderMessage implements Runnable

{

private DataOutputStream dout;

public SenderMessage(DataOutputStream dout)

{

this.dout=dout;

}

public void run()

{

String str;

InputStreamReader inf=new InputStreamReader(System.in);

BufferedReader buf=new BufferedReader(inf);

try

{

while (true)

{

str=buf.readLine();

dout.writeUTF(str);

if (str.equals("bye"))

{

System.out.println("客户端自己退出!");

System.exit(1);

}

}

}

catch (IOException e)

{

e.printStackTrace();

}

}

}

java 中怎么使用UDP?

发送步骤:

使用 DatagramSocket(int port) 建立socket(套间字)服务。

将数据打包到DatagramPacket中去

通过socket服务发送 (send()方法)

关闭资源

import java.io.IOException;   

import java点虐.*;   

  

public class Send {   

  

    public static void main(String[] args)  {   

          

        DatagramSocket ds = null;   //建立套间字udpsocket服务  

          

        try {   

          ds = new DatagramSocket(8999);   //实例化套间字,指定自己的port  

        }  catch (SocketException e) {   

            System.out.println("Cannot open port!");   

            System.exit(1);    

        }   

          

        byte[] buf= "Hello, I am sender!".getBytes();   //数据  

        InetAddress destination = null ;   

        try {   

            destination = InetAddress.getByName("192.168.1.5");   //需要发送的地址  

        }  catch (UnknownHostException e) {   

            System.out.println("Cannot open findhost!");   

            System.exit(1);    

        }   

        DatagramPacket dp =   

                new DatagramPacket(buf, buf.length, destination , 10000);     

        //打包到DatagramPacket类型中(DatagramSocket的send()方法接受此类,注意10000是接受地址的端口,不同于自己的端口!)  

          

        try {   

            ds.send(dp);   //发送数据  

        }  catch (IOException e) {   

        }   

        ds.close();   

    }   

}

接收步骤:

使用 DatagramSocket(int port) 建立socket(套间字)服务。(我们注意到此服务即可以接收,又可以发送),port指定监视接受端口。

定义一个数据包(DatagramPacket),储存接收到的数据,使用其中的方法提取传送的内容

通过DatagramSocket 的receive方法将接受到的数据存入上面定义的包中

使用DatagramPacket的方法,提取数据。

关闭资源。

import java点虐.*;   

  

public class Rec {   

  

    public static void main(String[] args) throws Exception {   

          

        DatagramSocket ds = new DatagramSocket(10000);   //定义服务,监视端口上面的发送端口,注意不是send本身端口  

          

        byte[] buf = new byte[1024]; //接受内容的大小,注意不要溢出  

          

        DatagramPacket dp = new DatagramPacket(buf,0,buf.length); //定义一个接收的包  

          

        ds.receive(dp); //将接受内容封装到包中  

          

        String data = new String(dp.getData(), 0, dp.getLength()); //利用getData()方法取出内容  

          

        System.out.println(data); //打印内容  

          

        ds.close(); //关闭资源     

    }   

}

声明:本文内容由网友自发贡献,本站不承担相应法律责任。对本内容有异议或投诉,请联系2913721942#qq.com核实处理,我们将尽快回复您,谢谢合作!


若转载请注明出处: udp广播代码java udp 广播地址
本文地址: https://pptw.com/jishu/1545.html
java代码怎么看调用 java代码怎么看调用过的文件 java代码编写环境 java环境配置好了之后怎样编程

游客 回复需填写必要信息