我想用ClientSocket和ServerSocket建立连接,为什么高不定呢?
代码很简单:ss.open;
cs.open;
cs.sendtext('text');
a:=ss.receivetext;
showmessage(a);大家看看错在哪里?

解决方案 »

  1.   

    ServerSocket必需指定监听端口号
    ClientSocket必需指定连接地址和连接端口号
      

  2.   


    cs.open;//问题应该出在这个地方,
    //你如果想这样用,必须把你的CLIENTSOCKET设置成阻塞方式,
    //在非阻塞方式下,OPEN函数是不等待连接就会返回。
    //在没有连接的情况下执行下一语句当然会失败。。
    cs.sendtext('text');
      

  3.   

    varsbuf:stirng;
    re:pcharclientread事件中:
      re:=nil;
       while socket.ReceiveLength>0 do
        begin
            //申请内存
            re:=AllocMem(socket.receivelength);
          try
            relong:=socket.ReceiveLength;
            Socket.ReceiveBuf(re^,Socket.receivelength);
            sBuf:=strpas(re);
            Setlength(sbuf,relong);
            //计算数据长度
            TotalLen:=TotalLen+ relong;
            Statusbar1.Panels.Items[1].Text:='总共接收(Byte): ' + IntToStr(TotalLen);
            Statusbar1.Update();
           finally
            freemem(re);
         end;sbuf:就是你收到的字符串.