1.服务器端未监听时,客户端阻塞
你可以打开一个工作线程连接服务器(防阻塞主线程),并且设置一个连接超时,或者超时重新连接
2.服务端关闭时,可以设一个属性把未发完的数据发送完再关闭,最好再在服务器关闭的时候发个消息给客户端,等客户端接受返回再关闭应该可以避免异常。客户端关闭同样处理
3。你可以把客户端的socket连接保存到一个Arraylist,通讯的时候只要针对你要通讯的socket来发送数据
另,加强异常处理力度以上意见仅供参考,说起来容易呀:)

解决方案 »

  1.   

    首先你要采用什么方式?现在比较流行的是采用.HTTP 发送SOAP协议的XML数据也就是采用WEB SERVICE 
      

  2.   

    把你的程序发给我看看。email:
    [email protected]
      

  3.   

    to  aspcn(飞刀),zhongjy001(.) ,jss() :程序已经发过去了,请查收。
      

  4.   

    不介意的话,我可以帮你看看,我刚刚做完一个类似的东东,一个work managerment [email protected]
      

  5.   

    cqing兄客气了!!!
    我马上发过去》
      

  6.   

    to cqing:
        已经发过去了,请查收。
      

  7.   

    在执行:mySock.BeginReceive(state.buffer,0,StateObject.BufferSize,0,new AsyncCallback(ReadCallback),state);提示:套接字操作遇到了一个已死的网络。
    这是怎么回事?
      

  8.   

    初步看了一下,第一个问题出在这一行:
    if(MyServer != null || mySocket != null) return;当连接不成功时,MyServer和mySocket以赋值,就直接return了。如果要保留该判断,可以在
    private void ConnectCallback(IAsyncResult ar)中加多一个catch:catch(SocketException e)
    {
    if(e.ErrorCode ==10061)
    {
    MessageBox.Show("无法建立连接,请稍后再试!  ");
    MyServer = null;
                      mySocket = null;
    }
    }其他的还没有仔细看,我要睡了,明天再帮你仔细看看,你这个程序其实问题挺多的,回头整理一下在告诉你。
      

  9.   

    to  tjq_tang, WindWithSun:
        已经发过去了,请查收。
      

  10.   

    谢谢大家的帮助!我的QQ是:39015010
    MSN:[email protected]  //只能别人加我,我加不了别人
      

  11.   

    我到做过SOAP协议方面的开发,我想大同小异吧,如果可以的话,我可以帮你看看
    [email protected]
      

  12.   

    我也想研究,可以发给我吗?
    [email protected]
      

  13.   

    问题好像有点不好理.
    我在读你的代码中,楼主能否将你的问题再次详细的述说一偏
    http://www.chinanetboy.com/code/index.asp?type=C%20Sharp
    看这里的代码能否帮你什么忙
      

  14.   

    主要想学习,可以发给我吗?
    [email protected]
      

  15.   


    下午。我看了一下你的源代码,发现问题应当是因为你在Client端连接时使用的是异步通信,这样的后果就是不管服务器是否listen,客户端都会显示建立连接,而且客户端一直在试图连接服务器,出现单向通信的问题就不足为奇了。     所以在客户端连接服务器时,先使用connect连接一次,如果成功,再使用异步。
      

  16.   

    我也在作一个很类似的东东,能否发给我:[email protected]
      

  17.   

    也给我发一个可以吗?
    [email protected]
      

  18.   

    Please! 可以发个给我吗?[email protected]
      

  19.   

    pls,Can u give me? thx.
    [email protected]
      

  20.   

    我做过类似的例子,你去下载看看:http://202.97.215.183/Amax/temp/07.rar,连接我保留3天
      

  21.   

    由于是一个针对多个客户端用户数据传输的程序,建议用Udp Socket(Tcp与每个客户都要建立连接,其中有三次握手,不适用),为了提高效率,建议使用异步调用。综合起来就是用异步调用的Udp Socket。问题是很难找到异步调用的Udp Socket的实例,如果虽有,请EMAIL给我一份。
      

  22.   

    to iloveamax(幽蓝海潮):
     谢谢你的程序,最近不方便上网,刚下载你的程序,还未看,   谢谢!
      

  23.   

    你好,发给我看看吧!
    [email protected]
      

  24.   

    可以给我发你的代码吗?
    我看看
    [email protected]
      

  25.   

    我 帮助你 看看 [email protected]