private void FrmMain_Load(object sender, EventArgs e)
{
FrmMain.CheckForIllegalCrossThreadCalls = false;
FrmMain.Data = new Thread(new ThreadStart(this.DataStart));
FrmMain.Data.Start();
}
窗口启动,开启data线程;
public void DataStart()
{
while (true)
{
try
{
if (client.Connected)
{
NetworkStream ns = new NetworkStream(client);
StreamReader reader = new StreamReader(ns); string result = reader.ReadLine();
byte[] u = utf8.GetBytes(result);
byte[] gb = Encoding.Convert(utf8, gb2312, u);
string sGb = gb2312.GetString(gb);
}
}
}
}上面的方法来接受服务端的信息,请高手看看那边出错了.while (true)
{
try
{
if (client.Connected)
{
NetworkStream ns = new NetworkStream(client);
StreamReader reader = new StreamReader(ns);这边调试时ns会出异常.IOexception
if(ns!=null)
{
StreamReader reader = new StreamReader(ns); string result = reader.ReadLine();
byte[] u = utf8.GetBytes(result);
byte[] gb = Encoding.Convert(utf8, gb2312, u);
string sGb = gb2312.GetString(gb);
}断点跟一下,看看ns 为什么为null
是否获取到值,应该是IO问题
这个是定义的socket
不过你还是用TcpClient.Client来接收发送数据的好,NetworkStream没有直接操作Socket的好。