广告广告
  加入我的最爱 设为首页 风格修改
首页 首尾
 手机版   订阅   地图  繁体 
您是第 4143 个阅读者
04:00 ~ 4:30 资料库备份中,需等较久的时间,请耐心等候
 
发表文章 发表投票 回覆文章
  可列印版   加为IE收藏   收藏主题   上一主题 | 下一主题   
rockman326
个人文章 个人相簿 个人日记 个人地图
初露锋芒
级别: 初露锋芒 该用户目前不上站
推文 x1 鲜花 x21
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片
推文 x0
[Delphi][求助] Server端如何接收Client端的字串
下面程式片段是Server端接收Client端的四则运算做处理之后再回传Client端
我想再做一个接收字串的值,类似聊天室的功能,之前都是卡在开始服务后就
没有处理了,请问我应该怎么做才能接收到Client端的字串值呢

try
Log('开始服务');
while not self.Terminated do
begin
// 读取
i:=uuTCPSocket.ReadData(FSocket,mStr,0,0,#13);
if i<0 then begin Log('读取失败: '+uuTCPSocket.GetErrorStr(i)); exit; end;
delete(mStr,1,1);
// 处理
i:=0; j:=0; n1:=0; n2:=0;
while true do
begin
j:=0; i:=Pos(& ..

访客只能看到部份内容,免费 加入会员 或由脸书 Google 可以看到全部内容



[ 此文章被rockman326在2007-03-02 18:17重新编辑 ]



献花 x0 回到顶端 [楼 主] From:台湾中华HiNet | Posted:2007-02-28 18:48 |
cmovies
数位造型
个人文章 个人相簿 个人日记 个人地图
小人物
级别: 小人物 该用户目前不上站
推文 x0 鲜花 x20
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

while true do
  begin
  j:=0;   i:=Pos('+',mStr); if i>0 then break;
  inc(j); i:=Pos('-',mStr); if i>0 then break;
  inc(j); i:=Pos('*',mStr); if i>0 then break;
  inc(j); i:=Pos('/',mStr); if i>0 then break;
  inc(j);
  end;
上面程式如果Client没有送+-*/不就变成无限回圈了吗?
只要再加一个 break; 在 end; 就好了, 那么字串就是 j=4
只是你输入的字串不能包含 +-*/ 不然就变成计算了


献花 x0 回到顶端 [1 楼] From:台湾中华电信 | Posted:2007-03-01 00:28 |
rockman326
个人文章 个人相簿 个人日记 个人地图
初露锋芒
级别: 初露锋芒 该用户目前不上站
推文 x1 鲜花 x21
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

是的,Client端要送出+-*/ Server端才会处理,参数mStr是从Client端所得到的字串,目前字串已经能接收到了,卡在最后的"回覆"Log,请问要怎么改才能将四则运算和接收讯息的Log分离呢?


献花 x0 回到顶端 [2 楼] From:台湾中华HiNet | Posted:2007-03-02 12:28 |
cmovies
数位造型
个人文章 个人相簿 个人日记 个人地图
小人物
级别: 小人物 该用户目前不上站
推文 x0 鲜花 x20
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

不太懂!? 你不是有 j = 4 为字串了吗?


献花 x0 回到顶端 [3 楼] From:台湾中华电信 | Posted:2007-03-02 15:28 |
rockman326
个人文章 个人相簿 个人日记 个人地图
初露锋芒
级别: 初露锋芒 该用户目前不上站
推文 x1 鲜花 x21
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

j=4会跳到else mRes:='ERROR'

我修改了一下原程式,请问如果POS第五行i:=Pos(' ',mStr); if i>0 then break;(这行是Client端接收到的字串),要怎么修改才能跳到case j of 4: mRes:=mStr;

假设我从Client发了一个字串"How are you?"那么"How are you?"这个字串就会存在mStr里


[ 此文章被rockman326在2007-03-02 17:14重新编辑 ]


献花 x0 回到顶端 [4 楼] From:台湾中华HiNet | Posted:2007-03-02 16:46 |
rockman326
个人文章 个人相簿 个人日记 个人地图
初露锋芒
级别: 初露锋芒 该用户目前不上站
推文 x1 鲜花 x21
分享: 转寄此文章 Facebook Plurk Twitter 复制连结到剪贴簿 转换为繁体 转换为简体 载入图片

谢谢cmovies大大的回答,已解决,我再修改原程式


献花 x0 回到顶端 [5 楼] From:台湾中华HiNet | Posted:2007-03-02 18:16 |

首页  发表文章 发表投票 回覆文章
Powered by PHPWind v1.3.6
Copyright © 2003-04 PHPWind
Processed in 0.117463 second(s),query:16 Gzip disabled
本站由 瀛睿律师事务所 担任常年法律顾问 | 免责声明 | 本网站已依台湾网站内容分级规定处理 | 连络我们 | 访客留言