delphi中通过socket向服务端传值,从服务端返回来的值如果是多次返回的不同值,在客户端应该怎么获取

2025-03-10 07:21:21
推荐回答(1个)
回答1:

andriod代码
Button b_send=(Button) findViewById(R.id.send_button);

b_send.setOnClickListener(new Button.OnClickListener()
{
@Override
public void onClick(View arg0)
{
EditText e_send =(EditText) findViewById(R.id.send_edit);
TextView t_send=(TextView) findViewById(R.id.send_textview);
String mesg=e_send.getText().toString();

try
{
socket=new Socket("168.0.0.205",4321);

PrintWriter out=new PrintWriter( new BufferedWriter(new OutputStreamWriter(socket.getOutputStream())),true);
out.println(mesg);
out.close();
}

}
catch (UnknownHostException e)
{
e.printStackTrace();
}
catch (IOException e)
{
e.printStackTrace();
}
}

delphi代码:(使用INDY组件)
procedure TForm1.IdTCPServer1Execute(AThread: TIdPeerThread);
var
wlm_buff: array[0..255] of Byte;
wlm_char: string[255];
begin
StrCopy(@wlm_buff[0], #0);
if AThread.Connection.Connected then
begin
AThread.Connection.ReadBuffer(wlm_buff, 255);
CopyMemory(@wlm_char, @wlm_buff[0], 255);
Label1.Caption := wlm_char;
end;
end;