错误出在下面最后一句。既然AcceptMsg需要一个参数,你在调用Start的时候就应该把那个参数传进去啊。你没有传,是空值,强制类型转换肯定不成功。ParameterizedThreadStart threadStart = new ParameterizedThreadStart(AcceptMsg); client_th = new Thread(threadStart); client_th.Start();
也就是改成:client_th.Start(client);
我将 client_th.Start(); 修改成了 client_th.Start(client);结果还是执行到这里 byte[] bytes = new byte[1024]; int bytesread = ns.Read(bytes, 0, bytes.Length);读不出从客户端发来的数据 就死掉了.!!什么原因???
private void AcceptMsg(object arg)
{
// TcpClient client = myListener.AcceptTcpClient();//用这个走到 下面 int bytesread = ns.Read(bytes, 0, bytes.Length);程序就停了!
TcpClient client = (TcpClient)arg; //问题就在这每次走到这就死掉了!
NetworkStream ns = client.GetStream();
Accept不是等待连接嘛
client_th = new Thread(threadStart);
client_th.Start();
int bytesread = ns.Read(bytes, 0, bytes.Length);读不出从客户端发来的数据 就死掉了.!!什么原因???