重庆分公司,新征程启航

为企业提供网站建设、域名注册、服务器等服务

java代码中dp java代码中的@override表示

40、在Java中,如何实现组播通信?

编辑一个java组播应用程序的过程如下

创新互联建站是专业的珙县网站建设公司,珙县接单;提供成都网站制作、做网站,网页设计,网站设计,建网站,PHP网站建设等专业做网站服务;采用PHP框架,可快速的进行珙县网站开发网页制作和功能扩展;专业做搜索引擎喜爱的网站,专业的做网站团队,希望更多企业前来合作!

1. 创建一个用于发送和接收的MulticastSocket组播套接字对象

2. 创建一个指定缓冲区大小及组播地址和端口的DatagramPacket组播数据包对象

3. 使用组播套接字joinGroup(),将其加入到一个组播

4. 使用组播套接字的send()方法,将组播数据包对象放入其中,发送组播数据包.

或者

使用组播套接字的receive()方法,将组播数据包对象放入其中,接收组播数据包

5. 解码组播数据包提取信息,并依据得到的信息作出响应String s = new String(dp.getData(), 0, dp.getLength());

6. 重复过程4和5,即在while循环中实现。

7. 使用组播套接字的leaveGroup()方法,离开组播组;关闭组播套接字

接收组播数据包程序:

Java代码

public class MulticastReceived {

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

InetAddress group = InetAddress.getByName("224.0.0.4"); // 组播地址

int port = 4006; // 端口

MulticastSocket msr = null;

try {

msr = new MulticastSocket(port); // 1.创建一个用于发送和接收的MulticastSocket组播套接字对象

msr.joinGroup(group); // 3.使用组播套接字joinGroup(),将其加入到一个组播

byte[] buffer = new byte[8192];

System.out.println("接收数据包启动!(启动时间:)" + new java.util.Date() + ")");

while (true) {

DatagramPacket dp = new DatagramPacket(buffer, buffer.length); // 2.创建一个指定缓冲区大小及组播地址和端口的DatagramPacket组播数据包对象

msr.receive(dp); // 4.使用组播套接字的receive()方法,将组播数据包对象放入其中,接收组播数据包

String s = new String(dp.getData(), 0, dp.getLength()); // 5.解码组播数据包提取信息,并依据得到的信息作出响应

System.out.println(s);

}

} catch (IOException e) {

e.printStackTrace();

} finally {

if (msr != null) {

try {

msr.leaveGroup(group); // 7.使用组播套接字的leaveGroup()方法,离开组播组

msr.close(); // 关闭组播套接字

} catch (IOException e) {

}

}

}

}

}

发送组播数据包程序:

Java代码

public class MulticastSender {

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

InetAddress group = InetAddress.getByName("224.0.0.1"); // 组播地址

int port = 4000; // 端口

MulticastSocket mss = null;

try {

mss = new MulticastSocket(port); // 1.创建一个用于发送和接收的MulticastSocket组播套接字对象

mss.joinGroup(group); // 3.使用组播套接字joinGroup(),将其加入到一个组播

byte[] buffer = new byte[8192];

System.out.println("接收数据包启动!(启动时间:)" + new java.util.Date() + ")");

while (true) {

String message = "Hello" + new java.util.Date();

byte[] buffer2 = message.getBytes(); // 2.创建一个指定缓冲区大小及组播地址和端口的DatagramPacket组播数据包对象

DatagramPacket dp = new DatagramPacket(buffer, buffer.length, group, port);

// msr.receive(dp); //接收组播数据包

mss.send(dp); // 4.使用组播套接字的send()方法,将组播数据包对象放入其中,发送组播数据包

// String s = new String(dp.getData(), 0, dp.getLength()); //5.解码组播数据包提取信息,并依据得到的信息作出响应

System.out.println("发送数据包给" + group + ":" + port);

Thread.sleep(1000);

}

} catch (IOException e) {

e.printStackTrace();

} finally {

if (mss != null) {

try {

mss.leaveGroup(group); // 7.使用组播套接字的leaveGroup()方法,离开组播组

mss.close(); // 关闭组播套接字

} catch (IOException e) {

}

}

}

}

}

java网络编程问题 求大神 dp.getAddress();是什么意思,获取ip的话为什么不getLocalHost?

dp是类DatagramPacket的对象。getaddress是获取发送信息计算机的IP地址。前者返回的不是字符串格式,后者返回是是字符串格式吧

android java代码中设置控件的宽高单位是什么?

android中的控件如果在xml布局文件中把控件的layout_width和layout_height写成固定值了,好像就不能再在程序中更改该控件的高度和宽度了,不知哪位大侠有何良策可以指教一二,如

xml文件内容如下:

LinearLayout

android:id="@id/dialog_bottom_neutral"

android:layout_width="fill_parent"

android:layout_height="wrap_content"

android:layout_weight="1.0"

android:gravity="center"

Button

android:id="@id/dialog_bottom_neutral_button"

android:layout_width="80.0dip"

android:layout_height="28.0dip"

android:background="@drawable/dlg_button"

android:gravity="center"

android:singleLine="true"

android:text="mid"

android:textColor="@drawable/dlg_button_text_color"

android:textSize="14.0sp" /

/LinearLayout

总结:如何在程序中动态设置button的宽度和高度,在程序中使用button.width和button.height设置没用,用LayoutParmas设置也没用。

编程中的 DP是什么意思 比如数位DP 什么的

dp表示dynamic programing,这里programing不是编程的意思,意为规划

dp就是动态规划,本来是运筹学里面的一种技术,现在多用在编程里面。特别是信息学竞赛和acm竞赛


当前文章:java代码中dp java代码中的@override表示
网址分享:http://cqcxhl.com/article/ddsssee.html

其他资讯

在线咨询
服务热线
服务热线:028-86922220
TOP