我需要一个类,它将具有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”的对象转换为类型为“ Server.MyClient”。

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

最佳答案

无法将类型(TcpClient)下转换为更多派生类型(MyClient)。您必须更新AcceptTcpClient以返回MyClient对象。

关于c# - AcceptTcpClient()和基于TcpClient的类,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/8251860/

10-11 23:18