你换成UDP通讯方式试试看TCP是一直连接的,端口一直被占用

解决方案 »

  1.   

    //注册远程对象
    channel=new TcpChannel(chan);
    ChannelServices.RegisterChannel(channel);
    RemotingConfiguration.RegisterWellKnownServiceType(typeof(RemoteServices),"RemoteServices",WellKnownObjectMode.Singleton);

    -----------------------------------------------------你不能把套接字的定义以及实例化都放在线程函数里面来处理,这样线程反复的进行实例就会报那个错误.
    建议把定义和实例放到线程函数体外面来,只能操作进行线程处理.
      

  2.   

    whether you debug it in One Pc  or not ? try to define different Port in server & client . or debug server side at another PC
      

  3.   

    如果一个Appdomin里面已注册了一个TCP通道,但是又要用到去激活远程用TCP通道注册的对象时就会抱这种错。
      

  4.   

    我发现错误出现在这里
                                       //用来接受字符的缓冲区
    byte[] bytes=new byte[1024]; //得到本地终结点
    IPEndPoint localEndPoint=GetLocalIPEndPoint(); //定义套接字类型
    Socket listener=new Socket(AddressFamily.InterNetwork,SocketType.Stream,ProtocolType.Tcp);

    //绑定
    try
    {
    //调用Bind方法将套接字(listener)与本地终结点"关联"**********************出错了
    listener.Bind(localEndPoint);
    *****就是这个listener.Bind(localEndPoint)老是报错!其中localEndPoint的端口是1024,
    怎么办啊?
      

  5.   

    把GetLocalIPEndPoint函数贴出来看看
      

  6.   

    private IPEndPoint GetLocalIPEndPoint()
    {
    //获取本机IP地址
    IPHostEntry ipHostInfo=Dns.Resolve(Dns.GetHostName());
    IPAddress ipAddress=ipHostInfo.AddressList[0];

    //读取端口号
    RegistryKey regRead=Registry.LocalMachine.OpenSubKey("SoftWare\\RemoteListServer");
    int port=Convert.ToInt32(regRead.GetValue("port")); //构造本地终结点
    IPEndPoint localEndPoint=new IPEndPoint(ipAddress,port);

    regRead.Close();
    return localEndPoint;
    }
      

  7.   

    http://qzjyw.idc71.com/Article_Show.asp?ArticleID=1183
      

  8.   

    动态端口的范围从1024到65535,这些端口号一般不固定分配给某个服务,也就是说许多服务都可以使用这些端口。只要运行的程序向系统提出访问网络的申请,那么系统就可以从这些端口号中分配一个供该程序使用。比如1024端口就是分配给第一个向系统发出申请的程序。在关闭程序进程后,就会释放所占用的端口号。  不过,动态端口也常常被病毒木马程序所利用,如冰河默认连接端口是7626、WAY 2.4是8011、Netspy 3.0是7306、YAI病毒是1024等等。