如题,我想通过套接字实现向web服务器提交数据,请大家帮帮忙,vc代码和delphi代码都可以,非常感谢!

解决方案 »

  1.   

    你还不如体验一下CBX框架,能够直接开发RIA的BS系统,使用高速http协议在互联网传输数据,基于Delphi7。讨论QQ群:16169282
      

  2.   

    利用delphi的TClientSocket控件,就可以简单实现
    这个控件的包jsocket可以在这里下载:
    http://hcqi2004.download.csdn.net/user/hcqi2004/JSocket,TServerSocketunit Unit1;interfaceuses
      Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
      Dialogs, StdCtrls, JSocket;type
      TForm1 = class(TForm)
        ServerSocket1: TServerSocket;
        ClientSocket1: TClientSocket;
        Memo1: TMemo;
        Memo2: TMemo;
        Button3: TButton;
        Button4: TButton;
        procedure ServerSocket1ClientConnect(Sender: TObject;
          Socket: TCustomWinSocket);
        procedure ServerSocket1ClientDisconnect(Sender: TObject;
          Socket: TCustomWinSocket);
        procedure Button3Click(Sender: TObject);
        procedure FormClose(Sender: TObject; var Action: TCloseAction);
        procedure ClientSocket1Connecting(Sender: TObject;
          Socket: TCustomWinSocket);
        procedure ClientSocket1Error(Sender: TObject; Socket: TCustomWinSocket;
          ErrorEvent: TErrorEvent; var ErrorCode: Integer);
        procedure Button4Click(Sender: TObject);
        procedure ServerSocket1ClientRead(Sender: TObject;
          Socket: TCustomWinSocket);
      private
        { Private declarations }
      public
        { Public declarations }
      end;var
      Form1: TForm1;implementation{$R *.dfm}//开启  ServerSocket端口
    procedure TForm1.Button3Click(Sender: TObject);
    begin
      ServerSocket1.Address:='210.30.56.250'; //这里设置服务器ip地址
      ServerSocket1.Port:=80;//设置服务器监听的端口
      ServerSocket1.Active:=True;
    end;//开启ClientSocket1端口,并发送数据
    procedure TForm1.Button4Click(Sender: TObject);
    begin
       ClientSocket1.Address:='210.30.56.250'; //这里设置要连接的服务器ip地址
       ClientSocket1.Port:=80;//设置服请求连接的端口
       ClientSocket1.Active:=True;
       ClientSocket1.Socket.SendText(Memo1.Text);
    end;procedure TForm1.ClientSocket1Connecting(Sender: TObject;
      Socket: TCustomWinSocket);
    begin
      //ClientSocket1端口发起连接请求
      Memo1.Lines.Add('正在请求连接'+Socket.RemoteAddress+'  '+inttostr(Socket.RemotePort));
    end;procedure TForm1.ClientSocket1Error(Sender: TObject; Socket: TCustomWinSocket;
      ErrorEvent: TErrorEvent; var ErrorCode: Integer);
    begin
      //ClientSocket1端口关闭或者出错
      ErrorCode:=0;
      Socket.Close;
      Memo1.Lines.Add('连接关闭'+Socket.RemoteAddress+'  '+inttostr(Socket.RemotePort));
    end;procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);
    begin
       //关闭ServerSocket1端口
       ServerSocket1.Active:=False;
    end;//ServerSocket1的OnClientConnect函数
    procedure TForm1.ServerSocket1ClientConnect(Sender: TObject;
      Socket: TCustomWinSocket);
    begin
      Memo1.Lines.Add('接受端口连接:'+Socket.RemoteAddress);
    end; //ServerSocket1的OnClientDisconnect函数
    procedure TForm1.ServerSocket1ClientDisconnect(Sender: TObject;
      Socket: TCustomWinSocket);
    begin
        Memo2.Lines.Add('连接关闭:'+Socket.RemoteAddress);
    end;procedure TForm1.ServerSocket1ClientRead(Sender: TObject;
      Socket: TCustomWinSocket);
      var
       recevtext:string;
    begin
       //服务端接受客户端发送过来的数据
       recevtext:=Socket.ReceiveText;
       Memo2.Lines.Add('接受客户端'+Socket.LocalAddress+' | '+inttostr(Socket.LocalPort)+' | '+recevtext);
    end;end.