急:c# 和java 的socket间的通信问题

darren_anklos 2009-04-28 02:45:42
现在在赶一个小项目,其中一块是实现一个c# 的程序和 一个java的程序通信的问题。通信是建立在TCP socket基础上,连接没有任何问题。信息传输是用UTF8格式。
java的通信是用stream.writeUTF(someString)和stream.readUTF()来读写和发送的。而我试了很多方法都不能让C#接受到java发送来的信息,同时c#发出去的java的也收不到,报的错误就是收到为空。我另外写个测试的程序,当java和c#用字节数组方式来接受和发送,就可以收到。但是由于种种原因我不能修改java的程序,我想知道C#能用什么方法和java的stream.writeUTF(someString)和stream.readUTF()这种方式来通信?

下面是我主要尝试的2个方法:
1. NetworkStream stream = client.getStream();

BinaryReader reader = new BinaryReader(stream, Encoding. UTF8);

BinaryWriter writer = new BinarayWriter(stream, Encoding.UTF8);

String receiveStr = reader.ReadString();

writer.write(myXmlString);

2. 把BinaryWriter转成StreamWriter并做些相关的修改,还是不行



小弟有多少分散多少分,先谢谢各位了!!!
...全文
173 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
darren_anklos 2009-04-28
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 CGabriel 的回复:]
建议先调试 C# 这边,用 Socket.Receive (Byte[]) 把所有数据统统收下,对比 Java 那边发的内容,看是不是少了头或者丢了尾。

如果有这个方法都没有收到任何东西, 那样问题应该不是出在数据接受上
[/Quote]

是的,我想也只有先这样试试
CGabriel 2009-04-28
  • 打赏
  • 举报
回复
建议先调试 C# 这边,用 Socket.Receive (Byte[]) 把所有数据统统收下,对比 Java 那边发的内容,看是不是少了头或者丢了尾。

如果有这个方法都没有收到任何东西, 那样问题应该不是出在数据接受上
darren_anklos 2009-04-28
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 ericzhangbo1982111 的回复:]
最好是写成byte[]数组的形式
[/Quote]

我也尝试了writer.write(byte[] data),但java那边还是收不到
darren_anklos 2009-04-28
  • 打赏
  • 举报
回复
补充:我在想是不是只能用socket里基本的send和receive才能实施二者的通信?

新手上路,还请达人不吝赐教
ericzhangbo1982111 2009-04-28
  • 打赏
  • 举报
回复
最好是写成byte[]数组的形式

111,126

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧