程序有一个接收端,不同机器上有发送端,我采用Udp或者Tcp方式
但是如果在同台机器上使用,要依靠网络,请问有什么好的办法

解决方案 »

  1.   

    没有听明白,同台机器上使用什么?UDP或TCP?使用目的是做什么?
      

  2.   

    我的意思就是一个服务器端要接收所有客户端的数据,我用的办法是TCp或Udp。
    我有很多客户端的时候这没有问题
    但当我服务器端与客户端在同台机器上时如果没有网络就不行
      

  3.   

    如果使用三层架构的话,应该不存在此类问题。并且不同的机器连接时,自动线程。新版的DataSnap功能很强大,并且精简了SocketSVR,您可以试试。TCPServer和TCPClient我用滴不多,不知道是否在监听端口时就检测了网络。
      

  4.   

    能具体说下DataSnap是怎么使用的吗?
      

  5.   

    2009以后的版本(本人XE)才相对简单了N多,之前的版本还要启动Svrscket,并且函数响应也只能在Type Library中来写。
    Tcp和DataSnap套接字的区别:TCP(TServerSocket/TClientSocket(老版本D),TTcpServer/TTcpClient)可以两个机器之间进行点对点通信,互相收发信息,通常用于远程控制。DataSnap就是传说中滴三层架构,通常用于主机仅提供服务(数据获取、更新等等),不采用其它技术的话,主机无法主动Push(呼叫)客户端。如果仅用于监控、接收信息并进行处理的话,最拿手的应该是数据库的操作:),DataSnap比较适合,本人比较常用做法是在接收到客户端某类信息后,返回一个自定义的指令,而客户端在接收到指令后(维护一个自定义命令列表),执行相应动作。楼主可根据自己的需要具体选择,也可以二者结合使用,无非是开放个端口的事情。
      关于三层架构的具体构建,不是一句话两句话说得清楚的,还请楼主goole一下Delphi DataSnap,多的是具体的操作向导。