各位大虾:
    我用ServerSocket和ClientSocket控件做了一个服务器和一个客户端,用来实现文件的传送,现在遇到两个问题,想请教一下大家。
    1、用ClientSocket用来访问服务器时候如果服务器端还没有开启,就会出现一个错误提示"Asynchronous socket error 10065." 我想知道的是为什么会出现这个错误,怎么屏蔽掉这个错误啊?而且我要是想要实现客户端开机之后就不断的连接服务器,直到连接上为止,这个功能怎么实现好呢?
    2、我做的服务器要求是从一个机器上得到文件,然后向另一个机器传送文件,不过接收文件和发送文件的时间都是不确定的。所以我想在服务器端设置两个ServerSocket监听两个不同的端口,我想问一下,这样的话当同时有上传和下在请求的时候,会不会发生冲突,大家又没有什么更好的办法可以实现这一个功能啊?这里先谢谢大家啦~~~~~

解决方案 »

  1.   

    10061 错误是:已经找到对方IP,但连接失败,可以对方的端口未打开
    11001 : 域名 --> IP 错误
    10065 : 域名 --> IP OK,但没有找到计算机。是在 有DNS 时,对方没有开机,也可能是网络故障
    10049 :非阴塞操作时,重复连接
      

  2.   

    在用clientsocker1.active:=true;
    时要保证 host电脑上的serversocket1.active:=true;否则就会出现Asynchronous socket error 10061!
      

  3.   

    Client.Send -> Server.ClientRead
    Server.Send -> Client.Read
      

  4.   

    不要使用CLIENTSOCKET的HOST属性,这是它的一个封装得不完美的地方。
    而只使用ADDRESS,
    从域名到IP的转换,另用代码完成,取得IP后填入ADDRESS。SOCKET自己不会冲突,就算单个SOCKET连接,它也是全双工的。
      

  5.   

    果然如halfdream(哈欠) 所说
    CLIENTSOCKET.HOST:='127.0.0.1'报‘Asynchronous socket error 10061."
    改成CLIENTSOCKET.ADDRESS:='127.0.0.1'就好了
      

  6.   

    在ClientSocket的OnError事件里面 把ErrorCode:=0;就不会报错了.
      

  7.   

    工作中需要使用socket.但以前没有做过.请教一下如何使用socket传送文件,然后写入数据库.