我最近用C#写了个c/s模式的通信程序。我是在xp系统下写的,现在服务器端运行在2000 server上。用的端口是5157。
现在出现的问题是客户端在一些机器上可以和服务器端正常通信,而在一些机器上运行说不能和服务器端建立连接,请问这是什么问题造成的呢?现在我不知道他们的机器是不是因为做了什么设置,所以不能正常通信?我应该怎么办才能解决问题呢?谢谢!!
是不是因为用5157端口,所以可能出现被防火墙拦截的?

解决方案 »

  1.   

    IPEndPoint localpoint = new IPEndPoint(localaddr,m_localport);

    //和服务器建立连接
    try 
    {
    myclient = new TcpClient(localpoint);
    m_bindstat = true; myclient.Connect("××××",5157);
    }
    catch (SocketException se)
    {
    if(se.ErrorCode == 10048) //端口被占用,要重新分配端口
    {
    m_bindstat = false;
    m_localport++;
    myclient.Close();
    }
    else
    {
    myclient.Close();
    return 5;
    }
    } }
      

  2.   

    to mengyao(edongguan) 
    能说具体些吗?
    你是指我在有问题的机器上面测试它使用的端口?
      

  3.   

    求一份c#写的通信程序看看,谢谢!
    [email protected]
      

  4.   

    to pele007(注意!) 
    发你的例子给我参考可以吗?谢谢
      

  5.   

    應該是防火牆的問題。關於socket的例子,msdn上的就很好,很簡單明了。
      

  6.   

    tjvictor(初学者) 
    例子在哪?我没看见呢
      

  7.   

    对了,直接用socket来写能不能解决这个问题?
    分别用socket和TcpClient来写有区别吗?