功能要求:
    向一指定的ip、port发送一段XML数据的函数,函数的结果返回的是从服务器端监听返回的XML数据    异常的情况一般主要是服务器没有开通,通过指定的IP和端口连接不上服务器    基本上单线程就可以满足,初次接触TTCPBlockSocket,只能先求助应急    因为紧急,所以最好能求助到一段能使用源代码,或指点原理也行    解决后结贴发分
    

解决方案 »

  1.   

    急啊,使用INDY控件实现的也行
      

  2.   

    那就用IdTcpServer和IdTcpClient来实现吧,你的需求也很简单,看看Indy提供的Demo,里面有例子,自己稍微改改就可以了
      

  3.   


    不需要管SERVER端,只管往指定的IP和PORT发送数据即可,并能监听接收返回的数据
    这个领域刚接触,不熟悉,才求源代码呢,好心人EMAIL更好:[email protected]
      

  4.   

    例子是IdTCPDemo
    你把例子里的ServerConnect事件中的
    NewClient.DNS         := AThread.Connection.Socket.Binding.PeerIP; //AThread.Connection.LocalName;
    这样就可以是客户端的IP了,你就可以想给哪个客户端发就给哪个发了。当然也可以向所有客户端发,
    至于XML数据,应该不是问题吧,直接的或者记录类型来转都可以
      

  5.   

    按你的要求,就要把指定的ip、port来作为TcpServer,首先你要明白一点:无论你用Indy的还是TTCPBlockSocket,要通讯的话都是要建立一个套接字的,只不过是控件封装好了的,不能说你指定的ip、port那什么都不做就可以接收别处发来的信息。
      

  6.   

    希望类似:
    var
      ListenerSocket, ConnectionSocket: TTCPBlockSocket;
    begin
      ListenerSocket := TTCPBlockSocket.Create;
      ConnectionSocket := TTCPBlockSocket.Create;
     
      ListenerSocket.CreateSocket;
      ListenerSocket.bind('127.0.0.1','1500');
      //问1 :连接上SERVER后,如何发数据
      //问2 :发完数据后,如何进行监听
      //问3 :接收返回的数据
      ListenerSocket.listen;
     
      repeat
        if ListenerSocket.canread(1000) then
        begin
          ConnectionSocket.Socket := ListenerSocket.accept;
          WriteLn('Attending Connection. Error code (0=Success): ', ConnectionSocket.lasterror);
          AttendConnection(ConnectionSocket);
        end;
      until false;
     
      ListenerSocket.Free;
      ConnectionSocket.Free;  正是因为没写过,才觉得不知如何入手,再也非常急,求能完成以上功能的简单代码
      正解,结200分,发了两贴
      

  7.   

    Indy的Demo,IdTCPDemo
    那么现成,那么简单,客户端服务器端都有,解决你的问题绰绰有余
      

  8.   

    D:\Program Files\Borland\Delphi6\Demos\Indy
    你DELPHI安装路径下...Borland\Delphi6\Demos\Indy\IdTCPDemo
    没有的话你可以到网上去找,多的是Indy Demo