设为首页收藏本站

Delphi乐园 开发者的家园

 找回密码
 立即注册

QQ登录

只需一步,快速开始

查看: 196|回复: 8

clientsocket 的简单问题 [复制链接]

Rank: 4

该用户从未签到

金钱
66600
12512
0
在线时间
626 小时
阅读权限
10
精华
0
积分
0
UID
412
发表于 2016-9-7 20:51:04 |显示全部楼层
分享到:
怎么个不可法?应当是可以的。

不过法度榜样这么写似乎不是很须要。



直接写成下面的法度榜样效不雅不是一样么??

procedure   TForm1.Button4Click(Sender:   TObject);

begin

clientsocket1.Active=true   then       clientsocket1.Socket.SendText('ok');

end;

Active设置之后,实际Socket会去连接,而默认情况下是异步操作的,所以这个时刻去攫取Active的值并没有酿裁缝想的true,而仍然是false。请距离一小段时光之后再点击一次,如不雅正常的话就可以了。
楼主语法缺点了吧?

procedure   TForm1.Button4Click(Sender:   TObject);

begin

if   clientsocket1.Active=false   then  Begin

  clientsocket1.Active:=true;

  clientsocket1.Socket.SendText('ok');

End

else

  clientsocket1.Socket.SendText('ok');

end;
把前提断定语句写成赋值语句了
   僵哥  Active设置之后,实际Socket会去连接,而默认情况下是异步操作的,所以这个时刻去攫取Active的值并没有酿裁缝想的true,而仍然是false。请距离一小段时光之后再点击一次,如不雅正常的话就可以了。



你的说法是对的  然则 我如果想在一个按钮诚实现 active  并断定应当怎么做? sleep(100) 然后断定 如许行么
一按钮事沂攀里   为啥clientsocket1:=true   然后断定clientsocket1.active   是否等于true;不可



procedure   TForm1.Button4Click(Sender:   TObject);

begin

if   clientsocket1.Active=false   then   clientsocket1.Active:=true;

sleep(100);

if   clientsocket1.Active=true   then       clientsocket1.Socket.SendText('ok');

end;



如许好么

呵呵
干嘛非得写在这里呢?可以写在OnConnect事沂攀里啊。连接上今后再发送嘛。
哈哈,是不是QQ群里的玉米呀

Rank: 4

该用户从未签到

金钱
60224
11927
0
在线时间
3 小时
阅读权限
10
精华
1
积分
0
UID
4
发表于 2016-9-7 21:02:05 |显示全部楼层
怎么个不行法?应该是可以的。

不过程序这么写好像不是很必要。



直接写成下面的程序效果不是一样么??

procedure   TForm1.Button4Click(Sender:   TObject);

begin

clientsocket1.Active=true   then       clientsocket1.Socket.SendText('ok');

end;

使用道具 举报

Rank: 4

该用户从未签到

金钱
62730
12098
0
在线时间
222 小时
阅读权限
10
精华
0
积分
0
UID
972
发表于 2016-9-7 21:07:05 |显示全部楼层
Active设置之后,实际Socket会去连接,而默认情况下是异步操作的,所以这个时候去读取Active的值并没有变成意想的true,而仍然是false。请间隔一小段时间之后再点击一次,如果正常的话就可以了。

使用道具 举报

Rank: 8Rank: 8

  • TA的每日心情
    奋斗
    2014-4-23 19:02:09
  • 签到天数: 42 天

    [LV.5]常住居民I

    金钱
    67776
    13436
    0
    在线时间
    25 小时
    阅读权限
    10
    精华
    0
    积分
    0
    UID
    2050
    发表于 2016-9-7 21:15:06 |显示全部楼层
    楼主语法错误了吧?

    procedure   TForm1.Button4Click(Sender:   TObject);

    begin

    if   clientsocket1.Active=false   then  Begin

      clientsocket1.Active:=true;

      clientsocket1.Socket.SendText('ok');

    End

    else

      clientsocket1.Socket.SendText('ok');

    end;

    使用道具 举报

    Rank: 4

    该用户从未签到

    金钱
    60405
    11971
    0
    在线时间
    0 小时
    阅读权限
    10
    精华
    0
    积分
    0
    UID
    9
    发表于 2016-9-7 21:16:06 |显示全部楼层
    把条件判断语句写成赋值语句了

    使用道具 举报

    Rank: 4

    该用户从未签到

    金钱
    62730
    12098
    0
    在线时间
    222 小时
    阅读权限
    10
    精华
    0
    积分
    0
    UID
    972
    发表于 2016-9-7 21:25:07 |显示全部楼层
    僵哥  Active设置之后,实际Socket会去连接,而默认情况下是异步操作的,所以这个时候去读取Active的值并没有变成意想的true,而仍然是false。请间隔一小段时间之后再点击一次,如果正常的话就可以了。



    你的说法是对的  但是 我要是想在一个按钮里实现 active  并判断应该怎么做? sleep(100) 然后判断 这样行么

    使用道具 举报

    Rank: 4

  • TA的每日心情

    2013-8-11 10:31:01
  • 签到天数: 1 天

    [LV.1]初来乍到

    金钱
    58881
    11668
    1
    在线时间
    0 小时
    阅读权限
    10
    精华
    0
    积分
    0
    UID
    7424
    发表于 2016-9-7 21:29:07 |显示全部楼层
    一按钮事件里   为啥clientsocket1:=true   然后判断clientsocket1.active   是否等于true;不行



    procedure   TForm1.Button4Click(Sender:   TObject);

    begin

    if   clientsocket1.Active=false   then   clientsocket1.Active:=true;

    sleep(100);

    if   clientsocket1.Active=true   then       clientsocket1.Socket.SendText('ok');

    end;



    这样好么

    呵呵

    使用道具 举报

    yqz 企业用户 

    Rank: 4

  • TA的每日心情
    擦汗
    2014-12-17 08:43:45
  • 签到天数: 17 天

    [LV.4]偶尔看看III

    金钱
    61387
    12274
    4
    在线时间
    19 小时
    阅读权限
    10
    精华
    0
    积分
    0
    UID
    2
    发表于 2016-9-7 21:31:08 |显示全部楼层
    干嘛非得写在这里呢?可以写在OnConnect事件里啊。连接上以后再发送嘛。

    使用道具 举报

    Rank: 4

    该用户从未签到

    金钱
    61463
    11718
    0
    在线时间
    119 小时
    阅读权限
    10
    精华
    0
    积分
    0
    UID
    814
    发表于 2016-9-7 21:38:08 |显示全部楼层
    哈哈,是不是QQ群里的玉米呀

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    空间、域名、优惠稳定。香港空间1元,美国2元。

    手机版|Delphi乐园 ( 冀ICP备11023363号-7 )    

    GMT+8, 2016-10-23 02:20

    Powered by Discuz! X2

    © 2001-2011 Comsenz Inc.

    公网安备 14090202000504号

    回顶部