以前的服务器端是用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);
则能正常显示,但先在客户端不能该。
只能修改服务器端的程序。看在服务器端程序怎么修改。
然后把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 不乱码才有鬼!