# re: 用Java向IPMSG发送消息
hehe but No File Packages Defined on sourceforge.
IP MSG程序效率写的很高
曲强 Nicky 评论于 2007-05-31 18:51 回复 更多评论
# re: 用Java向IPMSG发送消息[未登录]
@曲强 Nicky
可以从CVS下载到。
乱78糟 评论于 2007-05-31 22:20 回复 更多评论
# re: 用Java向IPMSG发送消息
给个下载地址 下了一个没有runtime.properties。。。
Sun 评论于 2007-06-01 10:15 回复 更多评论
# re: 用Java向IPMSG发送消息
@Sun
在Eclipse里新建CVS项目:
CVS地址:
:pserver:anonymous@ipmsg.cvs.sourceforge.net:/cvsroot/ipmsg
我已经打包,添加了下载地址。
乱78糟 评论于 2007-06-01 10:45 回复 更多评论
# re: 用Java向IPMSG发送消息
你能运行起来么?ipmsg.util.IPMPref是不是要一个runtime.properties。。。
Sun 评论于 2007-06-01 14:19 回复 更多评论
# re: 用Java向IPMSG发送消息
cvs的项目版本太老,而且应该叫聊天工具
曲强 Nicky 评论于 2007-06-01 15:35 回复 更多评论
# re: 用Java向IPMSG发送消息
@Sun
可以运行。
至于runtime.properties,在ipmsg.util.IPMPref中,如下:
private static final String HOME_PREF_FILE = ".ipmsg";
...
P_FILE = "runtime.properties";
...
try{
if(new Boolean(pref.getProperty("useHomePrefFile")).booleanValue() &&
(s = System.getProperty("user.home")) != null &&
!s.equals("")){
P_FILE = s + System.getProperty("file.separator") + HOME_PREF_FILE;
}
} catch (MissingResourceException ex) {
ex.printStackTrace();
}
直接在根路径下编译:javac *.java
运行:java Main
就可以了。
不过,界面有一部分乱码,这是因为日文的缘故。
你可以修改:ipmsg\util\Cp932.java
运行后,会在C:\Document and Setting\用户名 目录下生成一个.ipmsg的文件。这就是配置文件。
tripper 评论于 2007-06-01 16:47 回复 更多评论
# re: 用Java向IPMSG发送消息
对接受消息的ipmsg版本有限制么?不是java实现的IPMSG可以收到这种方式发送的消息么?
zhengbowen 评论于 2007-06-01 16:48 回复 更多评论
# re: 用Java向IPMSG发送消息
@曲强 Nicky
这个Java的版本是比较老了,运行效率也不咋地。
tripper 评论于 2007-06-01 16:50 回复 更多评论
# re: 用Java向IPMSG发送消息
@zhengbowen
Windows平台的IPMSG可以收到Java版的IPMSG发送的消息,因为它们发送和接受数据包的格式是一样的。
不过,我只在 IPMSG 2.06 Winows XP SP2平台做过测试。
其他版本没试过。
tripper 评论于 2007-06-01 16:55 回复 更多评论
# re: 用Java向IPMSG发送消息
@tripper
压根就没找到在哪有这个runtime.properties。。。
这个应该不是自己生成的吧
你那有?
发一个出来吧
Sun 评论于 2007-06-01 18:24 回复 更多评论
# re: 用Java向IPMSG发送消息
@Sun
正常情况下是不会产生这个文件。
请注意下面几句:
...
P_FILE = "runtime.properties";
...
try
...
//s= "C:\Document and Setting\用户名"
s = System.getProperty("user.home")
...
//P_FILE = "C:\Document and Setting\用户名\.ipmsg"
P_FILE = s + System.getProperty("file.separator") + HOME_PREF_FILE;
...
catch(...)
...
正常情况下, P_FILE,也就是配置文件的路径在try块中改成了:
"C:\Document and Setting\用户名\.ipmsg"
如果出现了异常,才使用P_FILE原来的值:"runtime.properties"
tripper 评论于 2007-06-01 18:39 回复 更多评论
# re: 用Java向IPMSG发送消息
帅哥 给个联系方式吧 我现在还没搞明白这个配置文件怎么回事。。。
就算是改成C:\Document and Setting\用户名\.ipmsg
也得有这个文件是不
Sun 评论于 2007-06-02 09:43 回复 更多评论
# re: 用Java向IPMSG发送消息
@Sun
tripper 评论于 2007-06-02 10:26 回复 更多评论
# 技术成长的过程
MyName 评论于 2007-06-02 13:42 回复 更多评论
# re: 用Java向IPMSG发送消息
@tripper
我只用上面的发送消息的示例代码发送消息后接受的IPmsg(2.06版)没有任何反映,环境是window2003+jdk1.4.2,接受方为自己或相同环境的另一台机器都没有反映。用java版的IPMSG发送消息其他机器的win版可以正常收到。是不是上面的示例代码需要加上握手过程啊?
zhengbowen 评论于 2007-06-04 09:22 回复 更多评论
# re: 用Java向IPMSG发送消息
@zhengbowen
看看是代码执行完了没有反应,还是一直没有执行完?
tripper 评论于 2007-06-04 09:36 回复 更多评论
# re: 用Java向IPMSG发送消息
@tripper
代码执行完了,执行到
socket.receive(packet);// 接收回应
时会被阻塞,但发送消息的过程已经完成了,将该句注释掉后程序能从头到尾执行完而且没有报错。
zhengbowen 评论于 2007-06-04 10:43 回复 更多评论
# re: 用Java向IPMSG发送消息
@zhengbowen
>将该句注释掉后程序能从头到尾执行完而且没有报错
那么IPMSG可以接收到消息吗?
乱78糟 评论于 2007-06-04 13:49 回复 更多评论
# re: 用Java向IPMSG发送消息
@乱78糟
>那么IPMSG可以接收到消息吗?
收不到!
zhengbowen 评论于 2007-06-04 15:03 回复 更多评论
# re: 用Java向IPMSG发送消息
单独写一个消息的监听是可以收到的:
DatagramSocket ds = new DatagramSocket(2425);
byte [] buf=new byte[1024];
DatagramPacket dp = new DatagramPacket(buf,buf.length);
ds.receive(dp);
System.out.println(new String(dp.getData(),0,dp.getLength())+" from "+dp.getAddress().getHostAddress()+":"+dp.getPort());
所有怀疑是发送消息的格式问题或是需要先完成“握手”后才能用上面的TestIPMSG来发送消息。请问有人直接用上面的TestIPMSG成功将消息发给其他版本IPMsg的么?
zhengbowen 评论于 2007-06-04 15:11 回复 更多评论
# re: 用Java向IPMSG发送消息
@zhengbowen
byte[] buffer = ("1:" + new Date().getTime() + ":" + SENDER + ":" + HOST
39 + ":" + IPMSG_SENDMSG + ":" + MSG_CONTENT).getBytes();
你把buffer的值打出来,看看是不是数据格式错误(比如不应该出现 : 的地方写了 : 号)。
tripper 评论于 2007-06-04 15:13 回复 更多评论
# re: 用Java向IPMSG发送消息
代码是:
String msg="1:"+new Date().getTime()+":"+SENDER+":"+HOST+":"+IPMSG_SENDMSG+":"+MSG_CONTENT;
byte[] buffer =msg.getBytes();
System.out.println("msg="+msg);
System.out.println("buffer="+buffer);
结果是:
msg=1:1180941554265:zhengbowen:AVIDM-ZHENGBW:32:Hello World!
buffer=[B@affc70
1:1180941554265:zhengbowen:AVIDM-ZHENGBW:32:Hello World!
不知道转为字节后前边多出来的是什么?
zhengbowen 评论于 2007-06-04 15:24 回复 更多评论
# re: 用Java向IPMSG发送消息
>不知道转为字节后前边多出来的是什么?
找到原因了 呵呵
转换后的buffer就是:[B@affc70
而最后一行的:1:1180941554265:zhengbowen:AVIDM-ZHENGBW:32:Hello World! 是下面这就话打出来的:
System.out.println(message); // 显示对方返回的信息
zhengbowen 评论于 2007-06-04 15:35 回复 更多评论
# re: 用Java向IPMSG发送消息
发送消息时乱码怎么处理?
急
xiaojiang 评论于 2007-06-06 10:57 回复 更多评论
# re: 用Java向IPMSG发送消息[未登录]
@xiaojiang
ipmsg.util.Cp932
这个是日文转码用的。
方法toJIS(String s)
和toCp932(String s)其实可以不用。
你可以自己调试一下。
tripper 评论于 2007-06-06 12:23 回复 更多评论
# re: 用Java向IPMSG发送消息
请问Cp932这个类要怎么改才能没有乱码,我不用这个类也会有乱码.