以前的服务器端是用java写的,发送数据如下:
string s_balance="测试";
out.write(s_balance.getBytes());接收端为:
byte[] Data = new Byte[400];
Int32 bytes = ns.Read(Data, 0, Data.Length);
string receiveData = Encoding.Default.GetString(Data, 0, bytes);这样都能正常接收。
==========================================
现在服务器端我该成C#语言写。
strreturn = "测试";
sw.Write(strreturn);
sw.Flush();接收端程序不变。这样发送数据,接收端会变成乱码。如果把接收端改成
byte[] Data = new Byte[400];
Int32 bytes = ns.Read(Data, 0, Data.Length);
string receiveData = Encoding.UTF8.GetString(Data, 0, bytes);
则能正常显示,但先在客户端不能该。
只能修改服务器端的程序。看在服务器端程序怎么修改。
string s_balance="测试";
out.write(s_balance.getBytes());接收端为:
byte[] Data = new Byte[400];
Int32 bytes = ns.Read(Data, 0, Data.Length);
string receiveData = Encoding.Default.GetString(Data, 0, bytes);这样都能正常接收。
==========================================
现在服务器端我该成C#语言写。
strreturn = "测试";
sw.Write(strreturn);
sw.Flush();接收端程序不变。这样发送数据,接收端会变成乱码。如果把接收端改成
byte[] Data = new Byte[400];
Int32 bytes = ns.Read(Data, 0, Data.Length);
string receiveData = Encoding.UTF8.GetString(Data, 0, bytes);
则能正常显示,但先在客户端不能该。
只能修改服务器端的程序。看在服务器端程序怎么修改。
解决方案 »
- 关于隐式转换的问题
- 小弟发现一个问题,winform中页面跳转,总是父窗体在最前方,用什么方法都不能用
- 关于分隔字符串问题
- 这个格式的xml文件的url怎么下载(https://www.test.com/downfile?w=AFKSDFSLGFD-SDFE)
- 怎样可让dropdownlist的项回到第一个啊?
- 还是EXCEL,关于自动换行
- 如何取得摄像头视频数据流?不要保存,我需要使用socket发送到目标服务端
- 如何将图片保存到数据库,并在Asp.net中调用数据库中的图片
- 请问一个方法如何返回多个返回值?如果对一个数组进行多下标赋值?
- 用C#开发的WEB,如何实现用代码定义打印纸张大小、formload时自动打印,然后自动关闭webform?
- 项目中的一个算法问题
- Access 内部错误: 无效的参数访问器: 2 BADBINDINFO。
然后把s_balance以Default的这种编码方式编码成Bytes
然后把编码后的字节数组write出去
---》》》
out.write(s_balance.getBytes(".Net中Defalt的编码格式"));
---》》》
out.write(s_balance.getBytes(".Net中Defalt的编码格式"));呵呵!这是java 的格式。我现在需要的是C#的这种格式
strreturn = "测试";
sw.Write(strreturn);
sw.Flush();需要在这里改,我也是这样做的
byte[] mybyte = System.Text.Encoding.Default.GetBytes(strreturn);
sw.Write(strreturn);
但在客户端接收的就是 System.byte不知道sw.Write(strreturn);这里发送的时候需要怎么转换下
sw.Write(strreturn);
-----》》》
sw.Write(mybyte);
如果sw是StreamWriter
sw.Encoding=System.Text.Encoding.Default;
加上这个,然后
System.Text.Encoding.Default.GetBytes(strreturn);
sw.Encoding=System.Text.Encoding.Default;
这句加不上吧!说它是只读属性。
ns = service.GetStream();
sr = new StreamReader(ns);
sw= new StreamWriter(ns);
//sw.Encoding = System.Text.Encoding.Default;
//开始接收内容
str = sr.ReadLine();
//解析数据,处理信息 while (str != null)
{
string[] kk = str.Split(','); #region 出入口接收类 4个
//01 入口收费站查余额
if (kk[0].Equals("entrybalance"))
{
strreturn = GEntryBalance.GetBalance(str);
sw.Write(strreturn);
sw.Flush();
}
具体代码如下接收端:byte[] Data = new Byte[400];
Int32 bytes = ns.Read(Data, 0, Data.Length);
string receiveData = Encoding.Default.GetString(Data, 0, bytes);
你的代码,你接收的使用用的Default
string receiveData = Encoding.UTF8.GetString(Data, 0, bytes);
发送的时候用的 UTF8 不乱码才有鬼!