我使用TIDTcpClient和TIDTcpServer两个控件通信,客户端向服务端发送请求后服务端回应一个字符串,服务端使用AThread.Connection.WriteLn(s)回应,s是一个字符串变量,我有2个问题不明白:
1.s是一个 全局 字符串变量,如果在发送的过程中,s被修改了,对发送有没有影响?
2.服务端在TCPServerExecute事件里回应客户端,如果我在此事件里面定义一个变量,比如a,由于tcpserver是多线程的,那么在每个单独的线程里都应该有一个a变量,这些a变量是不是同一个变量?还是各自独立互不干涉?
如果是互不干涉的,我想用变量a拷贝一份s,那样就不用担心s被修改了.

解决方案 »

  1.   

    1.基础问题,关于参数的传递,var,const...
    2.还是基础问题,什么是堆栈变量.
      

  2.   

    我的意思是
    1.如果我在发送一个全局字符串变量的过程中,这个变量被修改了,那么发送的数据不就被损坏了么.有没有被损坏的可能?如果有的话我想采用2.中的方法.
    2.TCPServerExecute事件是多线程的,如果我在这个事件代码里定义1个变量,那么每个线程都应该有个同名的变量,这些变量是各自独立的话我就通过定义一个变量的方式,然后把1.中的全局字符串变量拷贝到这个新定义的变量里,防止发送过程中被修改,如果不是各自独立的,拷贝就没有意义了.