winsocket 初始化已经成功!procedure TForm1.Button1Click(Sender: TObject);
var
    Info:string;
    BufSend,BufRecv:pchar;
    skt:TSOCKET;
    addr:TSockAddr;
    Re:Integer;
begin
//2.建立socket
    skt:=socket(AF_INET,SOCK_STREAM,0);
    if(skt=INVALID_SOCKET)then
    begin
        memInfo.Lines.Add('Error:Create socket failed!');
        exit;
    end;
//3.连接主机
    ZeroMemory(@addr,sizeof(addr));
    addr.sin_family :=AF_INET;
    addr.sin_addr.s_addr :=inet_addr(PChar(edtHOST.Text));
    //Finger use #79 port
    addr.sin_port:=htons(80);
    Re := connect(skt,addr,sizeof(addr));
    if(Re<>0)then
    begin
         memInfo.Lines.Add('Connect to server failed');
         exit;
    end;
//4.发送信息
    GetMem(BufSend,1024);
    ZeroMemory(BufSend,1024);
    Info:='adodelphi'+#10;
    StrPCopy(BufSend,Info);
    Re:=send(skt,BufSend^,Length(BufSend),0);
    if(Re=SOCKET_ERROR)then
    begin
         memInfo.Lines.Add('Send Data Failed');
         exit;
    end;
//5.读取主机返回信息
    GetMem(BufRecv,1024);
    repeat
      ZeroMemory(bufRecv,1024);
      re := recv(skt, BufRecv^, 1024, 0);
      Info:=StrPas(bufRecv);
      memInfo.Lines.Add(Info);
    Until  re=0;
    memInfo.Lines.Add('Finish');
    FreeMem(BufSend);
    FreeMem(BufRecv);
//6.关闭socket
    closesocket(skt);
end;

解决方案 »

  1.   

    这个问题我找到了,难道非要设成INADDR_ANY不可!真他妈的麻烦!
    不过现在可以继续探讨一下哪里有有关Delphi Winsocket编程的书籍可以下载?
      

  2.   

    我正在找这个问题,怎么设置INADDR_ANY
    我是刚学socket的
      

  3.   

    怎么有这么麻烦么,我用Delphi里面的Socket好多次了,没有你说的那个东东呀?
    INADDR_ANY,怎么好像做很底层的socket似的?Delphi里面的控件已经不用这么
    麻烦了吧?很容易用的TClientSocket和TServerSocket.看Delphi的help就可以
    了呀,我觉得Delphi里面,看帮助就可以解决大多数的问题了,最多在加上看Demo,
    再深一点就去看VCL的源码