问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

JAVA程序做broadcast

发布网友 发布时间:2022-04-30 16:10

我来回答

4个回答

热心网友 时间:2022-06-27 03:46

说的是你定义的地址不是组播地址吧

//选用专门为多播指定的D类IP地址(224.0.0.1到239.255.255.255)任选一个即可,用来创建一个多播组
public static final String DefaultMulticastGroupIP="230.1.1.1";
//使用指定的端口(一般选1024以上的端口号)只要是空闲端口即可,用于建立多播套接字。
public static final int DefaultMulticastGroupPort=1314;

热心网友 时间:2022-06-27 03:46

import java.awt.*;
import java.awt.event.*;
import javax.swing.*;
import java.io.*;
import java.net.*;
public class BorderCast extends JFrame implements KeyListener,ActionListener{
private JTextArea recMess,senMess;
private JButton send;
private InetAddress group;
private static int port=8081;
private MulticastSocket mult;
private Thread thread;
public BorderCast()
{
super("BorderCast");
this.setBounds(100,100,500,600);
this.setLayout(new FlowLayout());
this.setDefaultCloseOperation(EXIT_ON_CLOSE);
Container c=this.getContentPane();
recMess=new JTextArea(20,40);
//recMess.setFont(new Font("楷体",Font.PLAIN,22));
recMess.setForeground(Color.blue);
JScrollPane jScrollPane1=new JScrollPane(recMess);
c.add(jScrollPane1);
senMess=new JTextArea(8,40);
senMess.addKeyListener(this);

JScrollPane jScrollPane2=new JScrollPane(senMess);
c.add(jScrollPane2);
send=new JButton(" 发 送 ");
send.addActionListener(this);
c.add(send);
this.setVisible(true);
try {
group=InetAddress.getByName("224.0.1.1");
mult=new MulticastSocket(port);
mult.joinGroup(group);
} catch (Exception e) {
e.printStackTrace();
}
}
public void startCast()
{
senMess.requestFocus(true);
try{
byte[] buf=new byte[1024];
DatagramPacket dpr=new DatagramPacket(buf, buf.length);
String str;
while(true)
{
mult.receive(dpr);
str=new String(dpr.getData(),0,dpr.getLength());
recMess.append(str+"\n");
thread.sleep(100);
}
}
catch (Exception e) {
e.printStackTrace();
}
finally
{
if(mult!=null)
{
try {
mult.leaveGroup(group);
mult.close();
} catch (Exception e2) {
e2.printStackTrace();
}
}
}
}
public void sendCast(String stringMessage)
{
try{
byte[] buf=stringMessage.getBytes();
DatagramPacket dps=new DatagramPacket(buf, buf.length,group,port);
mult.send(dps);
}
catch (Exception e) {
e.printStackTrace();
}
}
public void actionPerformed(ActionEvent e)
{
String str=senMess.getText().trim();
if(e.getSource()==send)
{
if(str!=null&&!str.equals(""))
{
this.sendCast(str);
senMess.setText("");
}
}
}
public void keyReleased(KeyEvent e)
{
String str=senMess.getText().trim();
if(e.getKeyCode()==KeyEvent.VK_ENTER)
{
if(str!=null&&!str.equals(""))
{
this.sendCast(str);
senMess.setText("");
}
}
}
public void keyPressed(KeyEvent e) {}
public void keyTyped(KeyEvent e) {}
public static void main(String[] args) {
new BorderCast().startCast();
}

}追问我按这个,把GUI去了,加到我的代码里,可是显示不了,能帮我看看问题么,我加到补充里了

追答while(true)
{
multicastSocket.receive(dpr);
str=new String(dpr.getData(),0,dpr.getLength());
//recMess.append(str+"\n");
System.out.println(str);
multicastSocket.send(dps);
Thread.sleep(100);
}
你在这个循环中是先接收然后再发送的,如果接收不到则不会向下执行,即两个都不会发送消息。所以你运行同样的两个此程序是不会达到结果的。你把客户端的发送信息改到接收信息的前面,然后先运行服务端,再运行客户端就能收到了。

参考资料:756827998我的文库。

热心网友 时间:2022-06-27 03:47

Not a multicast address

热心网友 时间:2022-06-27 03:47

这个急不得了
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
十亿韩元折合人民币是多少阿? 邮政银行卡余额查询 邮政储蓄查询余额怎么查 艰难 的国运与雄健的国民读后感500(把以前与现在作对比) 初一下册人教版 艰难的国运与雄健的国民 读后感300字 今日头条哪个版本的有电脑版电脑版今日头条怎么下载 今日头条在电脑上如何安装今日头条怎样就安装到电脑上了 如何评价武庙? 武经总要前集概述 武经总要军事思想 怎么识别音在五线谱上的位置 请各位老师教教我 五线谱的调号 是怎么推算出来的,规律是什么?什么是主音?主音是怎么找出来的?谢谢 java的MulticastSocket 多播只能用于局域网吗? 怎么看五线谱怎么看音符怎么表示12345671 怎样可以快速并且准确的记出五线谱中七个音的位置? 谁有宾馆/酒店员工英语培训课件,或其他资料?员工英语基础比较薄弱,水平参差不齐,时间大约一个半小时 寻JAVA高手--JAVA实现对组通信的实现 什么叫组播地址(Multicast Address )? java 怎么239.255.255.250发送udp组播包 五线谱生的音符怎么认?都发什么音呀? Java 组播为什么在win7系统下出异常 这个是木耳吗,可以吃吗? 销售经验分享培训可以用什么题目? 木耳炖肉的做法 五线谱乐理知识,怎么找音,就是高音和低音都有固定的音,通过它来找其他的音(还有两个ib,指钢琴)谢谢 Java如何实现网络组播的应用软件 40、在Java中,如何实现组播通信? 在五线谱上如何能简单找到七个音呢 怎样锻炼自己的肩部才能看起来更加强壮? 黑木耳在什么情况下会变毒木耳?我们该如何区分木耳是否有毒? 买方信贷是( )提供的贷款。 选项: a、出口方银行向出口商 b、出口方银行向进口商 c、进口方银行向出口商 我的组播程序,能够发送,但是到了接收的时候就停止了,求大神帮助提示,回答有用的可以追加悬赏分 怎样看五线谱 它们都代表什么音 利用外资有哪三种形式?具体点 酒店行业培训师在培训前需要准备什么 java是否支持发送UDP广播?我指的不是组播 java中UDP,DCP TCP与IP的区别是什么? 如何分别五线谱调式主音位置 试谈谈出口信贷在我国对外投资中的作用 急求一个关于UDP的JAVA实现多人聊天源代码 谈谈出口信贷在我国对外投资中的作用? 钢琴五线谱怎么认 微信能收消息,但不能发消息是怎么回事? 广西南宁有那些旅游景点? 羊蝎子下奶吗? 电脑软件图标在底下怎么能显示 羊蝎子通草催奶行吗 ‘我的电脑‘图标如何设置在桌面下边工具栏显示? 如何在电脑桌面下面设置显示桌面的图标 羊蝎子汤可以下奶吗