SendText('helo');中的串尾要空格!SendText('helo   ');
是不是要改成同步方式

解决方案 »

  1.   

    改成同步就可以,不过你也可以在ClientSocket的OnConnected下写SendText
    这主要是因为,Active需要较长的时间,而默认的异步方式,并没有等Active完成就执行了
    SentText,你会发现SentText的返回值一直是0。
      

  2.   

    ClientSocket.ClientType := ctBlocking;
    也可以直接在object inspector中改
      

  3.   

    还是没收到?
    ClientSocket1.ClientType:=ctBlocking;
      

  4.   

    太夸张了,
    我这边可以,不知道你那边是怎么回事。
    我在一开始就在object inspector把ClientSocket设置成ctBlocking
    然后在btn的Click下
    ClientSocket.Active := true;
    Clientsocket.Socket.SentText('hello');
    很简单。
    你自己再试试吧,再不行我也帮不了你了
      

  5.   

    谢谢各位,我现在改用IdTCPClient可以收到了。
    现在的问题是:
    如何创建多线程来调用IdTCPClient的发送,因为如果是单线程的话,一个正在发送时,另一个就把它Disconnect,就出错了。
      

  6.   

    用IdTCPClient如何通过smtp服务认证?
    IdTCPClient1.Host:='smtp.sina.com.cn';
    IdTCPClient1.Port:=25;
    IdTCPClient1.Connect;
    IdTCPClient1.SendCmd('helo');
    IdTCPClient1.SendCmd('mail from:<[email protected]>');
    IdTCPClient1.SendCmd('rcpt to:<[email protected]>');
    IdTCPClient1.SendCmd('data');
    IdTCPClient1.WriteFile('1.eml',true);
    IdTCPClient1.SendCmd('.');
    IdTCPClient1.DisconnectSocket;
      

  7.   

    关于多线程,你看看DELPHI的例子就可以了