AcceptTcpClient()和基于TcpClient的类

本文关键字:TcpClient 的类 AcceptTcpClient | 更新日期: 2023-09-27 18:15:30

我需要一个类,它将拥有TcpClient拥有的一切+几个额外的字段,所以我创建了一个基于TcpClient的类:

public class MyClient: TcpClient
{
    public string winUser;
    public bool needHelp;
    public bool needSignOff;
    public MyClient() : base() {
        this.needHelp = false;
        this.needSignOff = false;
        this.winUser = "empty";
    }
}

现在我需要将所有传入的连接创建为该类的对象:

MyClient clientConnection = (MyClient)this.helpServer.AcceptTcpClient();

问题是AcceptTcpClient()生成一个TcpClient类对象,当我试图连接到服务器时,我一直得到这个异常:

listenServer():无法强制转换System.Net.Sockets类型的对象。TcpClient' to type 'Server.MyClient'.

如何将AcceptTcpClient()给我的TcpClient对象转换为MyClient对象?

AcceptTcpClient()和基于TcpClient的类

不能将类型(TcpClient)向下转换为更派生的类型(MyClient)。您必须更新AcceptTcpClient以返回MyClient对象。