JAVA Socket发送广播问题
哪位大虾帮俺看看以下代码 看是哪出问题了 发送后C++无法接收 C++都无法绑定Socket定义的端口 应该可以说明JAVA端口没设置好吧
import java.net.*; //导入java.net包
public class Weather extends Thread { // 创建类。该类为多线程执行程序
int port = 2708; // 定义端口
InetAddress iaddress = null; // 创建InetAddress对象
MulticastSocket socket = null; // 声明多点广播套接字
Weather() { // 构造方法
try {
iaddress = InetAddress.getByName("224.0.0.1"); // 实例化InetAddress,指定地址
socket = new MulticastSocket(port); // 实例化多点广播套接字
//socket.setTimeToLive(1); // 指定发送范围是本地网络
socket.setBroadcast(true);
socket.joinGroup(iaddress); // 加入广播组
} catch (Exception e) {
e.printStackTrace(); // 输出异常信息
}
}
public void run() { // run()方法
while (true) {
DatagramPacket packet = null; // 声明DatagramPacket对象
String str="zzzbbb";
byte data[] =str.getBytes(); // 声明字节数组
packet = new DatagramPacket(data, data.length, iaddress, port); // 将数据打包
try {
socket.send(packet); // 发送数据
System.out.println(str);
} catch (Exception e) {
e.printStackTrace(); // 输出异常信息
}
}
}
public static void main(String[] args) { // 主方法
Weather w = new Weather(); // 创建本类对象
w.start(); // 启动线程
/*ListenData obj=new ListenData();
while(true){
System.out.println(obj.GetMessage("224.0.0.1", 2707));
}*/
}
}
------解决方案--------------------
你使用的是UDP吧
如果不是TCP的话,客户端肯定没法建立连接啊
去看看C++里 有什么创建UDP监听方法吧
建议楼主找找网络通信方面的知识,先看下TCP和UDP的概念上的区别
然后再看看Java和C++对他们分别的实现代码的例子