我想用ServerSocket往ClientSocket传送数据可以吗?如果可以的话,该怎样做,能不能给点提示?别人说是只能ClientSocket往ServerSocket传送数据。谢谢

解决方案 »

  1.   

    可以的,ServerSocket和ClientSocket可以互相传送,
    ClientSocket是ClientSocket.Socket.SendText('SMALL');ServerSocket举例子给你type
      client_record=record
         CHandle: integer;          //客户端套接字句柄
         CSocket:TCustomWinSocket;    //客户端套接字
         CName:string;                //客户端计算机名称
         CAddress:string;             //客户端计算机IP地址
         CUsed: boolean;               //客户端联机标志
      end;type
      TfrmServerMain = class(TForm)
        ServerSocket: TServerSocket; 
       ……
       ……
      private
        { Private declarations }
      public
        { Public declarations }
        session: array[0..CMax] of client_record;      //客户端连接数组
        Sessions: integer;                             //客户端连接数
        ……
      end;
    var
       ……
    //从客户端读取信息
    procedure TfrmServerMain.ServerSocketClientRead(Sender: TObject;
      Socket: TCustomWinSocket);
    var
      i:integer;
      TempStr:string;
    begin
        for i:=0 to sessions do
        begin
            //取得匹配的客户端
            if session[i].CHandle = Socket.SocketHandle then
            begin
              TempStr:=session[i].CSocket.ReceiveText;//====>从客户端发来的信息
              if TempStr='BIG' then
                 session[i].CSocket.SendText('大屏幕连接成功');//====>向客户端发信息
              if TempStr='SMALL' then
                 session[i].CSocket.SendText('小屏幕连接成功');//====>向客户端发信息
           end;
        end;
        sleep(50);;
    end;