clientsocket1.Socket.SendText('a');
clientsocket1.Socket.SendText('b');

ServerSocket.socket.ReceiveText='ab'我要的結果是(分二次收到socket信息,而不是兩次發送作一次接收)
ServerSocket.socket.ReceiveText='a
ServerSocket.socket.ReceiveText='b'
請問大俠們怎么解決

解决方案 »

  1.   

    clientsocket1.Socket.SendText('a');
    sleep(100);//加个延时
    clientsocket1.Socket.SendText('b');你那样发送太快,就当一个包发送出去了
      

  2.   

    不行呀,一、會影響程序速度二、還是會分一次發送,sleep(100)不夠長,長了就讓程序運行太慢,可行性不好。謝謝
      

  3.   

    这好象不行吧,服务器分一次还是二次不是你决定的,按照发送的速度自己决定。你可以一次ReceiveText后,得到一个串,再把串分解成a,b,c来处理就行了。
      

  4.   

    clientsocket1.Socket.SendText('a');
    clientsocket1.Socket.SendText('%');
    clientsocket1.Socket.SendText('b');这样如果受到的是‘a%b’
    就对字符串进行分解
      

  5.   

    但有時他會分一次有時會分二次發,當分解時不好分了
    如第一次發為'abc'我可分為'a',copy(text,2,1):='b','c'
    如第二次發為'a','b','c'是前面的分解法就無用了,copy(text,2,1)就會報錯了,長度不夠二個
      

  6.   

    其實"cjf1009(农民程序员) ","gzmhero(hihihi) () "說的我都有試過,都可以,而且是我問這個問題之前就已經在用的方法,可是可行性不好,用Sleep(200)時間長度不夠,如加長就會把程序拖慢,不實際。
    如是用分解他們在小程序可以,在大程序會搞的很不好控制,如果控制不好會發生很多很難
    測出的錯誤,所以我想盡可能不用。我要的目的是分二次接收而不是接收後怎麼處理!
    結貼吧!我想沒人有那好辦法達到我的要求。謝謝大家的支持!放分了.