请教:
要实现的是:
假设服务器在目录 c:\myfile 下有图片 my.bmp服务器向客户端发个指令那么客户端var
    bp:Tbitmap; //位图实例变量
begin
    bp:=Tbitmap.Create;
    bp.LoadFromFile('c:\myfile\my.bmp');
    form1.Canvas.Draw(100,100,bp);
end;通过这种方式把服务器的图片显示出来?
当然
bp.LoadFromFile('c:\myfile\my.bmp');
是错误,这里需要的是服务器的路径
有下面几个问题向各位大哥请教:问题1:
服务器和客户端通过什么通信呢?
用 winsock 可以吗?问题2:
怎么把服务器的图片显示出来呢?
我上面的方法可以不?
图片的路径要怎么表示?可以给我写一小段代码不?问题3:
是我这样分析对不?谢谢!

解决方案 »

  1.   

    1、用winsock当然可以,其它2
    如果服务器和客户端在一个网内,服务器开个共享目录也没问题的话,那就直接开个共享目录,然后从目录读入就行了如果不在一个网内,或者不想开共享目录,
    那么最好有图片的记录有修改日期,然后当打开记录时,看看本地有没有这个图,时间是否比记录的修改日期新
    否则就与服务器通讯要求发送文件,然后保存,再打开
    当然,你要每次都要服务器发图片文件也是可以的,随便搞吧。3
    好象有点道理
      

  2.   

    谢谢大哥:
    1:
    服务器和客户端是在一个网段内2:
    所有的图片是不传到客户端的3:
    服务器的
    计算机名为:lsh 
    IP 地址为 :192.168.0.188客户端的
    计算机名为:wqs
    IP 地址为 :192.168.0.166
    假设我把 myfile 这个文件夹设置为共享那么
    var
        bp:Tbitmap; //位图实例变量
    begin
        bp:=Tbitmap.Create;
        bp.LoadFromFile('c:\myfile\my.bmp');
        form1.Canvas.Draw(100,100,bp);
    end;
    这段代码应该怎么改一下啊?谢谢!
      

  3.   

    比如你服务器的图片目录共享名是 pic bp.LoadFromFile('c:\myfile\my.bmp');
    改为
    bp.LoadFromFile('\\lsh\pic\my.bmp');试试
      

  4.   

    服務器裝個IIS,用web方式讀取要好一點吧.
      

  5.   

    谢谢!
    不用 web 啊~~var
        bp:Tbitmap; //位图实例变量
    begin
        bp:=Tbitmap.Create;
        bp.LoadFromFile('\\slh\myfile\my.bmp');
        form1.Canvas.Draw(100,100,bp);
    end;
    我的程序在客户端运行时
    提示:
    can not open file "\\slh\myfile\my.bmp'" 
    登陆失败,未知的用户名或密码错误请教
    是不是因为我的服务器需要用户名和密码啊
    还是别的原因?
    那怎么办呢?谢谢!
      

  6.   

    該先用
    WNetAddConnection2 或WNetAddConnection登陸服務器.
      

  7.   

    谢谢!
    gangjh 大哥!
    WNetAddConnection2 
    WNetAddConnection分别是哪个控件啊?请大哥详细说说!
      

  8.   

    要不就用FTP控件, 在服务器架设FTP