Internet Stream



  • Hallo
    ich würde gerne 2 kleine programme schreiben:
    -Das erste soll ein server sein
    -Das zweite soll dem Server ein String schicken

    Wie geht das? Also an eine bestimmte URL (mit dyndns.com), die an den server weitergeleitet wird.

    Danke schon mal



  • Hallo

    IchBinRegistriert schrieb:

    Hallo
    ich würde gerne 2 kleine programme schreiben:
    -Das erste soll ein server sein

    Z.B TServerSocket

    -Das zweite soll dem Server ein String schicken

    Z.B. TClientSocket

    Also an eine bestimmte URL (mit dyndns.com), die an den server weitergeleitet wird.

    😕

    bis bald
    akari



  • kannst du mir einen bseispielcode geben wie ich damit ein String verschicken (bzw. empfangen) kann?

    Bei google findet man nur für Java und da weiß ich wie es geht 😃



  • Schau dir mal das Chat-Programm im Unterordner "BCB/Examples" an...



  • Mich interessiere das auch aber ich hab nur den Ordner Demos, mit Beispielen.
    Aber nur lokales Ein Chat Prog hab ich nicht gefunden, oder im Programm-
    ordner ist auch nix "Example mäßiges". Bin zu blöd zum finden 😃 , oder hab es gar nicht 😕 .
    Gibts das noch irgendwo anders zu finden ?



  • Ich habe noch den alten BCB 5, dort gibt es unter "Examples/Internet/Chat" ein Beispielprojekt für die Verwendung von Server- und ClientSocket.

    Wie das bei den anderen Versionen aussieht, weiß ich leider nicht (ansonsten such doch mal einfach nach dem Begriff "ServerSocket" im Ordner 'Demos).



  • kannst du mir vielleicht einen kurzen bsp code geben ich finde das programm nicht 😞



  • Hier mal die beiden Dateien des Formulars (ohne DFM-Datei):
    1. Header

    //----------------------------------------------------------------------------
    //Borland C++Builder
    //Copyright (c) 1987, 1997 Borland International Inc. All Rights Reserved.
    //----------------------------------------------------------------------------
    //---------------------------------------------------------------------------
    #ifndef mainH
    #define mainH
    //---------------------------------------------------------------------------
    #include <Classes.hpp>
    #include <Controls.hpp>
    #include <StdCtrls.hpp>
    #include <Forms.hpp>
    #include "ScktComp.hpp"
    #include <Buttons.hpp>
    #include <ComCtrls.hpp>
    #include <ExtCtrls.hpp>
    #include <Menus.hpp>
    //---------------------------------------------------------------------------
    class TChatForm : public TForm
    {
    __published:	// IDE-managed Components
            TBevel *Bevel1;
            TStatusBar *StatusBar1;
            TPanel *Panel1;
            TSpeedButton *SpeedButton1;
            TMemo *Memo1;
            TMemo *Memo2;
            TMainMenu *MainMenu1;
            TMenuItem *File1;
            TMenuItem *FileListenItem;
            TMenuItem *FileConnectItem;
            TMenuItem *Disconnect1;
            TMenuItem *N1;
            TMenuItem *Exit1;
            TServerSocket *ServerSocket;
            TClientSocket *ClientSocket;
            void __fastcall FileListenItemClick(TObject *Sender);
       void __fastcall FileConnectItemClick(TObject *Sender);
       void __fastcall Exit1Click(TObject *Sender);
       void __fastcall Memo1KeyDown(TObject *Sender, WORD &Key,
          TShiftState Shift);
       void __fastcall FormCreate(TObject *Sender);
       void __fastcall ClientSocketConnect(TObject *Sender,
          TCustomWinSocket *Socket);
       void __fastcall ClientSocketDisconnect(TObject *Sender,
          TCustomWinSocket *Socket);
       void __fastcall ClientSocketRead(TObject *Sender,
          TCustomWinSocket *Socket);
       void __fastcall ServerSocketClientRead(TObject *Sender,
          TCustomWinSocket *Socket);
       void __fastcall ServerSocketAccept(TObject *Sender,
          TCustomWinSocket *Socket);
       void __fastcall ServerSocketClientConnect(TObject *Sender,
          TCustomWinSocket *Socket);
       void __fastcall Disconnect1Click(TObject *Sender);
       void __fastcall ClientSocketError(TObject *Sender,
          TCustomWinSocket *Socket, TErrorEvent ErrorEvent, int &ErrorCode);
       void __fastcall ServerSocketClientDisconnect(TObject *Sender,
          TCustomWinSocket *Socket);
    private:	// User declarations
    public:		// User declarations
            bool IsServer;
            String Server;
            __fastcall TChatForm(TComponent* Owner);
    };
    
    //---------------------------------------------------------------------------
    extern TChatForm *ChatForm;
    //---------------------------------------------------------------------------
    #endif
    

    2. Source

    //----------------------------------------------------------------------------
    //Borland C++Builder
    //Copyright (c) 1987, 1997 Borland International Inc. All Rights Reserved.
    //----------------------------------------------------------------------------
    //---------------------------------------------------------------------------
    #include <vcl.h>
    #pragma hdrstop
    
    #include "main.h"
    //---------------------------------------------------------------------------
    #pragma link "ScktComp"
    #pragma resource "*.dfm"
    TChatForm *ChatForm;
    //---------------------------------------------------------------------------
    __fastcall TChatForm::TChatForm(TComponent* Owner)
            : TForm(Owner)
    {
    }
    //---------------------------------------------------------------------------
    
    void __fastcall TChatForm::FileListenItemClick(TObject *Sender)
    {
      FileListenItem->Checked = !FileListenItem->Checked;
      if (FileListenItem->Checked)
      {
         ClientSocket->Active = false;
         ServerSocket->Active = true;
         StatusBar1->Panels->Items[0]->Text = "Listening...";
      }else
      {
         if (ServerSocket->Active)
         { 
            ServerSocket->Active = false;
         }
         StatusBar1->Panels->Items[0]->Text = "";    
      }          
    }
    //---------------------------------------------------------------------------
    //---------------------------------------------------------------------------
    void __fastcall TChatForm::FileConnectItemClick(TObject *Sender)
    {
      if (ClientSocket->Active)
      { 
        ClientSocket->Active = false;
      }   
      if (InputQuery("Computer to connect to", "Address Name:", Server))
      {
         if (Server.Length() > 0)
         {
            ClientSocket->Host = Server;
            ClientSocket->Active = true;
            FileListenItem->Checked = false;  
         }
      }
    }
    //---------------------------------------------------------------------------
    //---------------------------------------------------------------------------
    void __fastcall TChatForm::Exit1Click(TObject *Sender)
    {
      ServerSocket->Close();
      ClientSocket->Close();
      Close();   
    }
    //---------------------------------------------------------------------------
    //---------------------------------------------------------------------------
    void __fastcall TChatForm::Memo1KeyDown(TObject *Sender, WORD &Key,
          TShiftState Shift)
    {
      if (Key == VK_RETURN)
      {
         if (IsServer){ServerSocket->Socket->Connections[0]->SendText(
             Memo1->Lines->Strings[Memo1->Lines->Count - 1]); }
         else
         { ClientSocket->Socket->SendText(Memo1->Lines->Strings[
            Memo1->Lines->Count -1]);}
      }   
    }
    //---------------------------------------------------------------------------
    //---------------------------------------------------------------------------
    void __fastcall TChatForm::FormCreate(TObject *Sender)
    {
      FileListenItemClick(NULL);   
    }
    //---------------------------------------------------------------------------
    //---------------------------------------------------------------------------
    void __fastcall TChatForm::ClientSocketConnect(TObject *Sender,
          TCustomWinSocket *Socket)
    {
      StatusBar1->Panels->Items[0]->Text = "Connect to: " + Socket->RemoteHost;   
    }
    //---------------------------------------------------------------------------
    //---------------------------------------------------------------------------
    void __fastcall TChatForm::Disconnect1Click(TObject *Sender)
    {
      ClientSocket->Active = false;
      ServerSocket->Active = true;
      StatusBar1->Panels->Items[0]->Text = "Listening...";
    }
    //---------------------------------------------------------------------------
    //---------------------------------------------------------------------------
    void __fastcall TChatForm::ClientSocketRead(TObject *Sender,
          TCustomWinSocket *Socket)
    {
      Memo2->Lines->Add(Socket->ReceiveText());  
    }
    //---------------------------------------------------------------------------
    //---------------------------------------------------------------------------
    void __fastcall TChatForm::ServerSocketClientRead(TObject *Sender,
          TCustomWinSocket *Socket)
    {
      Memo2->Lines->Add(Socket->ReceiveText());  
    }
    //---------------------------------------------------------------------------
    //---------------------------------------------------------------------------
    void __fastcall TChatForm::ServerSocketAccept(TObject *Sender,
          TCustomWinSocket *Socket)
    {
      IsServer = true;
      StatusBar1->Panels->Items[0]->Text = "Connect to: " + Socket->RemoteAddress;   
    }
    //---------------------------------------------------------------------------
    //---------------------------------------------------------------------------
    void __fastcall TChatForm::ServerSocketClientConnect(TObject *Sender,
          TCustomWinSocket *Socket)
    {
      Memo2->Lines->Clear();   
    }
    //---------------------------------------------------------------------------
    //---------------------------------------------------------------------------
    void __fastcall TChatForm::ClientSocketDisconnect(TObject *Sender,
          TCustomWinSocket *Socket)
    {
      FileListenItemClick(NULL);   
    }
    //---------------------------------------------------------------------------
    //---------------------------------------------------------------------------
    void __fastcall TChatForm::ClientSocketError(TObject *Sender,
          TCustomWinSocket *Socket, TErrorEvent ErrorEvent, int &ErrorCode)
    {
      Memo2->Lines->Add("Error connecting to:" + Server);   
      ErrorCode = 0;
    }
    //---------------------------------------------------------------------------
    //---------------------------------------------------------------------------
    void __fastcall TChatForm::ServerSocketClientDisconnect(TObject *Sender,
          TCustomWinSocket *Socket)
    {
      StatusBar1->Panels->Items[0]->Text = "Listening...";
    }
    //---------------------------------------------------------------------------
    //---------------------------------------------------------------------------
    

Anmelden zum Antworten