用tcpclient类发送中文字符接收时变成乱码,请问该怎么设置?
如题
client端
byte[] data = new byte[ 1024 ];
TcpClient server;
try
{
IPEndPoint ipep = new IPEndPoint( IPAddress.Parse( "10.87.45.183" ), 8080 );
server = new TcpClient();
server.Connect( "10.87.45.183", 8888 );
}
catch( SocketException exp )
{
Console.WriteLine( "服务器连接错误!" + exp.Message );
Console.ReadLine();
return;
}
NetworkStream ns = server.GetStream();
int recv = ns.Read( data, 0, data.Length );
string StringData = Encoding.ASCII.GetString( data, 0, recv );
Console.WriteLine( StringData );
data = Encoding.ASCII.GetBytes( "Client Data OK客户!" );
ns.Write( data, 0, data.Length );
ns.Close();
server.Close();
Console.WriteLine( "exit..." );
Console.ReadLine();
server端
byte[] data = new byte[ 1024 ];
TcpListener newSock = new TcpListener( 8888 );
newSock.Start();
Console.WriteLine( "等待一个客户端连接。。。" );
TcpClient client = newSock.AcceptTcpClient();
NetworkStream ns = client.GetStream();
data = Encoding.ASCII.GetBytes( "welcome TcpListener Server!" );
ns.Write( data, 0, data.Length );
int recv = ns.Read( data, 0, data.Length );
string StringData = Encoding.ASCII.GetString( data, 0, recv );
Console.WriteLine( "客户端发送的信息为:" + StringData );
Console.ReadLine();
ns.Close();
client.Close();
newSock.Stop();
问题点数:20、回复次数:2Top
1 楼lumj(真奇怪)回复于 2005-09-03 20:13:13 得分 10
你的编码选择错误,把所有的 Encoding.ASCII改成 Encoding.Default或者Encoding.Utf8或者Encoding.Unicode,随便什么都成,只要不是ASCIITop
2 楼fanbl(快乐人)回复于 2005-09-04 10:14:30 得分 10
把Encoding.ASCII改成Encoding.Default,我前几天也遇到这个问题。Top




