//server端
procedure tform1.tcpserver1accept(sender: tobject;
  clientsocket: tcustomipclient);
var
  s:string;
  datathread: tclientdatathread;
begin
  datathread:=tclientdatathread.create(true);
  datathread.targetlist:=lst1.items;
  s:=clientsocket.receiveln;
  while s<> do
  begin
  datathread.listbuffer.add(s);
  s:=clientsocket.receiveln;
  end;
  datathread.resume;
  clientsocket.sendln(success);
end;
//client端“发送”按钮代码
procedure tform1.suibutton2click(sender: tobject);
var
  i:integer;
begin
   
 try
 if tcpclient1.connect then
 begin
 for i:=0 to lst1.count -1 do
 tcpclient1.sendln(lst1.items[i]);
 //tcpclient1.receiveln();
 end;
  finally
  tcpclient1.disconnect;以上代码怎样添加才有信息返回的代码。也就是说如果server端没有打开或者IP不正确时客户端点击“发送”按钮后,能有提示信息,如“网络无法连接”等提示,上面代码如何修改啊?或者有好的例子可以发到。感谢各位高手朋友!

解决方案 »

  1.   

    连接不上是要出错的,可以使用try...except捕获
    而且tcpclient还有一个OnError事件
      

  2.   

    使用try...except...end;
    中间捕获异常信息,将异常信息转化为自定义的后再显示出来
      

  3.   

    try...except是要捕获“发送”后的异常是吗?我好想试了之后还是不行啊,哪位高手能直接给我详细的添加上代码呢?感谢啦
      

  4.   

    不知道楼主有没有碰到丢数据的情况,好比十六进制的命令7e01020405000102047e,中间有命令00,服务端接收到这里就会把后面的丢失掉,只取了前面一段7e01020405??