Herzlich Willkommen, lieber Gast!
  Sie befinden sich hier:

  Forum » VC++ / MFC » UDP-Nachricht an Listbox

Forum | Hilfe | Team | Links | Impressum | > Suche < | Mitglieder | Registrieren | Einloggen
  Quicklinks: MSDN-Online || STL || clib Reference Grundlagen || Literatur || E-Books || Zubehör || > F.A.Q. < || Downloads   

Autor Thread - Seiten: > 1 <
000
11.04.2006, 19:46 Uhr
chw1234



Hallo,

ich möchte eine UDP-Nachricht eines anderen Rechners in einer ListBox darstellen. Wie kann ich das denn unter VisualStudio6.0 machen ?? Hat wer Tipps ??

Danke
Christian
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
001
11.04.2006, 20:52 Uhr
xXx
Devil


wo ist dein Problem? wo sind deine ansätze?
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
002
11.04.2006, 21:51 Uhr
chw1234



tja genau da liegt mein Problem - ich hab momentan keine Ansätze ...
Unter welchem Stichwort muss ich denn mal anfagen zu suchen ??
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
003
11.04.2006, 22:37 Uhr
~StarShaper
Gast



Zitat von chw1234:
tja genau da liegt mein Problem - ich hab momentan keine Ansätze ...
Unter welchem Stichwort muss ich denn mal anfagen zu suchen ??


Ich verstehe dein Problem auch nicht so recht. Der Umgang mit einer ListBox ist wesentlich einfacher als beispielsweise mit einer List Control. Die Nachricht im UDP Packet fügst du einfach über die Methode AddString() der Klasse CListBox hinzu.


C++:
...
CString strText;
// String in Lisbox einfügen
m_ctlListBox.AddString(strText);


Sämtliche Member der Listbox Klasse findest du wie gewohnt in der MSDN: http://msdn2.microsoft.com/en-US/library/k8cseaky(VS.80).aspx
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
004
12.04.2006, 13:01 Uhr
chw1234




Zitat von ~StarShaper:
[quote chw1234]tja genau da liegt mein Problem - ich hab momentan keine Ansätze ...
Unter welchem Stichwort muss ich denn mal anfagen zu suchen ??


Ich verstehe dein Problem auch nicht so recht. Der Umgang mit einer ListBox ist wesentlich einfacher als beispielsweise mit einer List Control. Die Nachricht im UDP Packet fügst du einfach über die Methode AddString() der Klasse CListBox hinzu.


C++:
...
CString strText;
// String in Lisbox einfügen
m_ctlListBox.AddString(strText);


Sämtliche Member der Listbox Klasse findest du wie gewohnt in der MSDN: http://msdn2.microsoft.com/en-US/library/k8cseaky(VS.80).aspx[/quote]


aber wie kommt denn die Nachricht in einen String ?? muss ich das über die winsockets machen ??
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
005
12.04.2006, 13:57 Uhr
chw1234



Sorry, nun aber mit Text.

Ich muss ja die UDP-Nachricht in einen String bekommen. Mache ich das über Winsockets ??
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
006
12.04.2006, 17:16 Uhr
~Stefan S.
Gast


@ chw1234:

Ich denke du solltest dich mit den Grundlagen vertraut machen. WinSock ist eine Abkürzung für Windows Sockets und ist eine API für die Netzwerkprogrammierung. Du hast anscheinend nicht die notwendigen Informationen um die von dir gewünschten Ziele zu erreichen. Deshalb solltest du dich zunächst einmal mit WinSock 2.0, TCP, UDP usw. auseinandersetzen. UDP Sockets sind im Gegensatz zu TCP Sockets sehr einfach aufgebaut. Die Daten des UDP Datagramms kannst du z.B. mit recvfrom() auslesen:


C++:
int recvfrom(
  SOCKET s,
  char* buf,
  int len,
  int flags,
  struct sockaddr* from,
  int* fromlen
);


Siehe MSDN Library WinSock Functions http://msdn.microsoft.com/library/default.asp?url=/library/en-us/winsock/winsock/winsock_functions.asp .

Etwas einfacher gestaltet sich die Netzwerkprogrammierung mit der .NET Socket Klasse. Es handelt sich um eine Abstraktionsschicht über der C basierten WinSock 2.0 API. Ein Tutorial findest du unter www.codeplanet.eu/modules/tutorials/article.php?storyid=11 . Hier werden dir auch die Einzelheiten erklärt inkl. vieler Quellcodes (kleines Chatprogramm).

Auf www.c-worker.ch/ gibt es etwas ältere, aber immer noch gute Quellcodebeispiele zu WinSock selbst.

Gruß
Stefan
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
007
12.04.2006, 17:18 Uhr
xXx
Devil


arg... sach doch gleich das du weder weist wie man das UDP Protokoll auswertet noch empfängt

evt. wäre das was für dich:
www.codeproject.com/internet/udt.asp
www.codeproject.com/internet/udptime.asp <- Hier ist der Client evt. interessant
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
008
24.04.2006, 15:16 Uhr
chw1234



Hallo

ich habe nun folgendes


C++:
WSADATA w;
  SOCKET sd;
  sockaddr_in server;
  int port_number = 27015;
  char buffer[1024];
  int  BUFFER_SIZE = 1024;
  sockaddr_in client;
  int client_length = sizeof(client);
    
    // Open windows connection
    if (WSAStartup(0x0101, &w) != 0)
    {
        fprintf(stderr, "Could not open Windows connection.\n");
        exit(0);
    }

    // Open a datagram socket
    sd = socket(AF_INET, SOCK_DGRAM, 0);
    if (sd == INVALID_SOCKET)
    {
        fprintf(stderr, "Could not create socket.\n");
        WSACleanup();
        exit(0);
    }
    // Clear out server struct
    memset((void *)&server, '\0', sizeof(struct sockaddr_in));
    
    // Set family and port
    server.sin_family = AF_INET;
    server.sin_port = htons(port_number);
    
    // Bind address to socket
    if (bind(sd, (struct sockaddr *)&server,
                     sizeof(struct sockaddr_in)) == -1)
    {
        fprintf(stderr, "Could not bind name to socket.\n");
        closesocket(sd);
        WSACleanup();
         exit(0);
    }
    client_length = (int)sizeof(struct sockaddr_in);
    /*
    //Receive bytes from client
    recvfrom(sd, buffer, BUFFER_SIZE, 0,
            (struct sockaddr *)&client, &client_length);
    
     */





doch wenn ich die Funktion recvfrom nicht auskommentiere dann startet mein Programm nicht - warum ??
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
009
07.05.2006, 22:34 Uhr
chw1234



Hallo,

ich möchte eine Udp-Nachricht in einer Listbox angezeigt bekommen. Die MessageBox gibt noch folgendes aus: "Socket erstellt!" und als zweites "Socket an port 12345 gebunden". Ich erhalte jedoch keine Nachrichten. Wer kann mir helfen ??


Eingebunden sind

#include <winsock2.h>
#include <windows.h>
#include <stdio.h>
#include <stdlib.h>

und auch die Ws2_32.lib Bibliothek


C++:
void CUDP_ConnDlg::OnOK()
{
    long rc;
    SOCKET s;
    char buf[256];
    int BufLen =1024;
    SOCKET acceptSocket;
    SOCKADDR_IN addr;
    rc=startWinsock();
    s =socket(AF_INET,SOCK_DGRAM,0);

    if(s==INVALID_SOCKET)
    {
         // MessageBox("UDP-Fehler");
         CString abc;
         abc.Format("%d", WSAGetLastError());
         MessageBox("Fehler",abc);

    }
    else
    {
        MessageBox("Socket erstellt!\n","Socket Gestartet");
    }
    int bind (SOCKET s, SOCKADDR* name, int namelen);
  
    struct sockaddr_in
    {
        short sin_family;
        unsigned short sin_port;
        struct in_addr sin_addr;
        char sin_zero[8];
    };
    memset(&addr,0,sizeof(SOCKADDR_IN));
    addr.sin_family=AF_INET;
    addr.sin_port=htons(12345);
    addr.sin_addr.s_addr=INADDR_ANY;
    //rc=bind(acceptSocket,(SOCKADDR*)&addr,sizeof(SOCKADDR_IN));
    if(rc==SOCKET_ERROR)
    {
      MessageBox("Fehler: bind, fehler code: %d\n");
    }
    else
    {
      MessageBox("Socket an port 12345 gebunden\n");
    }
    //rc=recvfrom(s,buf,256,0,(SOCKADDR*)&remoteAddr,&remoteAddrLen);
    int a=0;
    while (a<2) //(rc>-1)
    {

        a=a+1;
        //rc=recv(s,buf,256,0);
          //rc=recvfrom(s,buf,256,0,(SOCKADDR*)&remoteAddr,&remoteAddrLen);
        //rc=sendto(s,buf,5,0,(SOCKADDR*)&addr,BufLen);
        rc=recvfrom(s,buf,256,0,(SOCKADDR*)&addr,&BufLen);
        m_List.AddString(buf);

    }
            
    // Close the socket when finished receiving datagrams

  closesocket(s);
}




Dieser Post wurde am 07.05.2006 um 22:35 Uhr von chw1234 editiert.
 
Profil || Private Message || Suche Download || Zitatantwort || Editieren || Löschen || IP
Seiten: > 1 <     [ VC++ / MFC ]  


ThWBoard 2.73 FloSoft-Edition
© by Paul Baecher & Felix Gonschorek (www.thwboard.de)

Anpassungen des Forums
© by Flo-Soft (www.flo-soft.de)

Sie sind Besucher: