Willkommen auf myCSharp.de! Anmelden | kostenlos registrieren
 | Suche | FAQ

Hauptmenü
myCSharp.de
» Startseite
» Forum
» Suche
» Regeln
» Wie poste ich richtig?

Mitglieder
» Liste / Suche
» Wer ist online?

Ressourcen
» FAQ
» Artikel
» C#-Snippets
» Jobbörse
» Microsoft Docs

Team
» Kontakt
» Cookies
» Spenden
» Datenschutz
» Impressum

  • »
  • Portal
  • |
  • Mitglieder
Beiträge von janismac
Thema: C#-Praktikum: Ist es realistisch, ohne bzw. vor Programmierausbildung eins zu bekommen?
Am im Forum: Smalltalk

Zitat von herbivore
Kennst du http://www.cleancodedeveloper.de/? Du könntest mal den Code, den du produziert hast, daraufhin prüfen, ob er den Prinzipien entspricht, um selber eine Einschätzung zu bekommen, wie weit bzw. bereit du schon bist.

Mit manchen Prinzipien bin ich vertraut:
Don´t Repeat Yourself, Keep it simple, stupid, Composition over Inheritance, Versionskontrollsystem

Mit anderen habe ich wenig bis keine Erfahrung, da ich bisher nur allein Programmiert habe und der Umfang meiner Projekte relativ übersichtlich war.
Vorallem kann ich schwer einschätzen wie gut lesbar mein Code ist, da ich dazu bisher kein Feedback habe. Aber ich hatte bisher auch keine Motivation lesbaren Code zu schreiben da ich davon ausging dass ihn sonst niemand liest.
Wenn nicht in einem Praktikum, wo wäre denn ein guter Ort um Programmieren im Team zu lernen?
Ich habe grad mal hier ins "Projekte" Forum geschaut, aber da gibt es fast keine Gesuche nach Helfern.

btw: Falls es jemanden interessiert habe ich eine kleine Screenshot-Präsentation von bisherigen Projekten gemacht.
http://janismac.de/projekte-uebsersicht/

Gruß, Janismac

Thema: C#-Praktikum: Ist es realistisch, ohne bzw. vor Programmierausbildung eins zu bekommen?
Am im Forum: Smalltalk

Ok, danke schon mal.

Ich wohn momentan in Bochum.

Von welchen Frimen bzw. Branchen redest du denn da?
Ich hätte jetzt in erster Linie nach Software/IT-Dienstleistern gesucht, aber das hört sich an als gäbe es da auch Möglichkeiten in anderen Bereichen.

Thema: C#-Praktikum: Ist es realistisch, ohne bzw. vor Programmierausbildung eins zu bekommen?
Am im Forum: Smalltalk

Hallo,

ich habe mich entschlossen mein Studienfach zu wechseln (von Maschinenbau zu CSE/CES) und habe daher jetzt nen halbes Jahr Leerlauf, bis zum nächsten Wintersemester.

Ich habe den Wunsch ein längeres Praktikum in C# Softwareentwicklung zu machen um die Zeit zu überbrücken.
Ich bin bei weitem kein ausgebildeter Programmierer, aber ich hab mir das Programmieren vor einigen Jahren (2007) selbst beigebracht und seit dem durch viele kleine Projekte Erfahrung gesammelt. Außerdem bin ich gut in mathe (ist das wichtig?).

Für wie realistisch haltet ihr es, dass ich überhaupt ein Praktikum bekommen?
Bieten Softwareunternehmen überhaupt Praktika an?
Die Alternative wäre für mich noch das 2. Semester Maschinenbau weiter zu machen.
Geld ist übrigens kein Problem, ich mach das auch für lau ;)

Gruß, janismac

Thema: Alias/Referenz auf Werttyp
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Bleibt das Problem dabei nicht bestehen?
Also wenn ich das so weiterführe:


T[][] myArray = ....
for (int i = 0; i < myArray.Lenght; ++i)
{
    T[] tmp = myArray[i];

    for (int j = 0; j < tmp.Length; ++j)
    {
        T value = tmp[j];
        value = 123;
    }
}
Console.Write(myArray[0][0]);

Dann steht die "123" in "value", aber nicht in "myArray[0][0]". Werttypen werden doch kopiert. Oder?

Thema: Alias/Referenz auf Werttyp
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Es geht mir nicht um Performance, sondern um die Geschwindigkeit beim Programmieren.

Und das eigentliche Problem ist nicht der lange Arrayname (dafür gibts ja IntelliSense), sondern der Index "[x][y]".
Um den einzutippen brauch ich mindestens so lange wie für copy+paste. Gut, das ist kein tragisches Problem, man könnte damit leben :D. Aber, wenn es eleganter geht, warum nicht?

Thema: Alias/Referenz auf Werttyp
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

Hallo,

in einem Algorythmus wird ein zweidimensionales Array eines Werttyps (eine Enumeration) iteriert.
Innerhalb der doppelten Schleife müsste ich dann den Ausdruck "array[x][y]" verwenden. Da der Name etwas länger ist (eigentlich nicht "array") will ich den nicht jedes Mal neu tippen oder kopieren.

Wenn ich folgendes schreibe, wird der Wert aber kopiert.

typ kurzName = array[x][y];

Ich brauche aber eine Referenz (bzw. "Alias") darauf, damit der Wert im Array auch geändert wird.
Das ist eigentlich eine Grundlagenfrage, trotzdem habe ich auch nach einiger Sucherei nichts gefunden. "Boxing" scheint mir nicht der richtige Weg zu sein. Gibts dazu eine elegante Lösung? oder Copy+Paste?

MfG janismac

Thema: [erledigt] UDP Probleme über Loopback
Am im Forum: Netzwerktechnologien

Zitat von ujr
In meinen Versuchen konnte ich allerdings die Exception fangen und ReceiveFrom erneut aufrufen und dann weiter über den Socket kommunizieren.

Oh, das hatte ich wohl verworfen weil es mit "UdpClient" nicht funktioniert hat. Vielen Dank.


Fazit:
Um UDP zu verwenden sollte man eher "Socket" als "UdpClient" nutzen.

Problem gelöst, bitte schließen!

MfG janismac

Thema: [erledigt] UDP Probleme über Loopback
Am im Forum: Netzwerktechnologien

Zitat von ujr
Zum Problem an sich. Leider fehlt eine nachvollziehbare Beschreibung, welcher Code zu dem Problem führt (am besten minimal lauffähig) und wie das Problem dann reproduziert werden kann.

Der minimal-code ist angehängt.

Fehlerreproduktion:
  • Server starten
  • Client starten
  • (Testweise Nachrichten über die Konsolen hin und her schicken)
  • Eines der beiden Programme schließen (spielt keine Rolle welches)
  • Im verbleibenden Programm eine Nachricht schicken
  • -> BUMM (Screenshot von der Exception im VC# 2010 Express dabei)

MfG janismac

Thema: [erledigt] UDP Probleme über Loopback
Am im Forum: Netzwerktechnologien

Zitat von Grumbler85
(Die sprechen hier von "connected" und "unconnected")

Ist mir bewusst. Ich benutze den Socket "unconnected". Trotzdem wird das Socket durch die Exception unbrauchbar.

Aber danke für die Recherche.

MfG janismac

Thema: [erledigt] UDP Probleme über Loopback
Am im Forum: Netzwerktechnologien

Danke, aber ich denke ich kenne mich mit IP/TCP+UDP gut genug aus.
Und ich hätte auch nicht angefangen von einer Verbindung zu sprechen, wenn es nicht in der Fehlermeldung aufgetaucht wäre.

Das Problem besteht NUR wenn Client und Server auf dem gleichen Rechner laufen und über 127.0.0.1 kommunizieren.
Daher ist es naheliegend, dass betriebssystem-intern eine Kommunikation darüber statt findet, welche UDP ports "binded" sind.

Durch die Exception wird das Socket unsinnigerweise unbrauchbar (vielleicht ein "copy+paste" fehler in Windows, denn in bei TCP wäre das sinnvoll).

MfG janismac

Thema: [erledigt] UDP Probleme über Loopback
Am im Forum: Netzwerktechnologien

habe jetzt einen work-around hinbekommen
wenn ein socket "crasht" also diese fehlermeldung ausspuckt wird er beendet, und ein neuer mit gleichem port erzeugt.
aber ne lösung ist das nicht :-/

        void NetworkPolling()
        {
            while (true)
            {
                EndPoint RemoteEndPoint = new IPEndPoint(IPAddress.Any, 0);
                Packet p = new Packet();
                byte[] buffer = new byte[8192];

                try
                {
                    int byteCount = UdpSocket.ReceiveFrom(buffer, ref RemoteEndPoint);

                    byte[] buffer2 = new byte[byteCount];
                    for (int i = 0; i < byteCount; i++)
                        buffer2[i] = buffer[i];

                    p.decode(buffer2);
                    p.source = (IPEndPoint)RemoteEndPoint;
                    p.packetReceivedTime = DateTime.Now;

                    lock (packetQueue) packetQueue.Enqueue(p);
                }
                catch (SocketException ex)
                {
                    lock (UdpSocket)
                    {
                        int port = ((IPEndPoint)UdpSocket.LocalEndPoint).Port;
                        UdpSocket.Close();
                        UdpSocket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
                        UdpSocket.Bind(new IPEndPoint(IPAddress.Any, port));
                    }
                }
            }
        }

Thema: [erledigt] UDP Probleme über Loopback
Am im Forum: Netzwerktechnologien

Ich hab den Server auf Socket umgeschrieben wie du gesagt hast. -> kein Effekt.

Dann hab ich Server und Client beide auf die synchrone Receive() methode umgestellt (jeweils mit PollingThread) um das als Fehlerquelle auszuschließen.
Und den Client hab ich auch noch auf Socket (ohne UdpClient) umgeschrieben.
Resultat: Alles genau wie vorher.

Zitat von Siassei
Beim beenden des Servers musst du dafür sorgen, dass der Client zuvor die Verbindung zum Server beendet.
Das ist das Problem, wenn der Client sich beendet wird im Server eine "SocketException" ausgelöst.
Scheinbar schließe ich den Socket nicht richtig, aber habe alles ausprobiert (Disconnect, Close, etc...).
Zitat von Siassei
Kannst du mal den Code für die Kommunikation Server <-> Client bereitstellen.
Wie sieht dein Client aus? Rufst du die connect-Methode auf?
Wann bekommst du die Fehlermeldung? z.B. wenn der Server gestoppt wird.

Receive:

        void NetworkPolling()
        {
            while (true)
            {
                EndPoint RemoteEndPoint = new IPEndPoint(IPAddress.Any, 0);
                Packet p = new Packet();
                byte[] buffer = new byte[8192];


                int byteCount = UdpSocket.ReceiveFrom(buffer, ref RemoteEndPoint); // HIER kommt die SocketException mit Errorcode 10054 {"Eine vorhandene Verbindung wurde vom Remotehost geschlossen"}

                byte[] buffer2 = new byte[byteCount];
                for (int i = 0; i < byteCount; i++)
                    buffer2[i] = buffer[i];

                p.decode(buffer2);
                p.source = (IPEndPoint)RemoteEndPoint;

                lock (packetQueue)
                {
                    packetQueue.Enqueue(p);
                }
            }
        }

Send:

        void UdpSend(Byte[] sendBytes, IPEndPoint EP)
        {
            UdpSocket.SendTo(sendBytes, EP);
        }

Connect (im Client):


        private void connect(IPEndPoint EP, string name)
        {
            Packet p = new Packet();

            // ... fill packet

            // setup local endpoint to listen for packets
            UdpSocket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);

            // send first msg to server
            UdpSend(p.encode(), EP);

            NetworkPollingThread = new Thread(new ThreadStart(NetworkPolling));
            NetworkPollingThread.Start();
        }

Socket Setup (im Server):

            ServerUdpSocket = new Socket(AddressFamily.InterNetwork, SocketType.Dgram, ProtocolType.Udp);
            ServerUdpSocket.Bind(new IPEndPoint(IPAddress.Any, localPort));

Thema: [erledigt] UDP Probleme über Loopback
Am im Forum: Netzwerktechnologien

Ich habe noch mal gründlicher gesucht und gesehen, dass ich nicht der erste mit diesem Problem bin.
In 3 anderen Foren wurde das gleiche Problem beschrieben, aber nirgends eine Lösung in sicht.

Für mich sieht das aus wie ein Bug.
Vielleicht wäre es mal an der Zeit MS direkt anzuschrieben?


Hier die anderen Foreneinträge
Winsock Error 10054
Python socket error on UDP data receive. (10054)
back to basics :( error 10054

Thema: [erledigt] UDP Probleme über Loopback
Am im Forum: Netzwerktechnologien

Das kann eigentlich nicht sein.

Server:

const int localPort = 4823;
// ...
UDP = new UdpClient(new IPEndPoint(IPAddress.Any, localPort));


Client:

UDP = new UdpClient();

Der Server bekommt einen festen Port zugewiesen. Der Client startet den UDP Socket ohne Parameter, bekommt also vom System einen freien Port zugewiesen.. oder?
Habs auch getestet, einmal war der Client Port 53595.
Außerdem funktioniert der Datentransfer in beide Richtungen, nur das Schließen bereitet Probleme.


Die genaue Fehlermeldung der Exception (mit MSDN ergänzt):
Fehler
WSAECONNRESET
10054
Connection reset by peer.
An existing connection was forcibly closed by the remote host. This normally results if the peer application on the remote host is suddenly stopped, the host is rebooted, the host or remote network interface is disabled, or the remote host uses a hard close (see setsockopt for more information on the SO_LINGER option on the remote socket). This error may also result if a connection was broken due to keep-alive activity detecting a failure while one or more operations are in progress. Operations that were in progress fail with WSAENETRESET. Subsequent operations fail with WSAECONNRESET.


Habs nach dem ich die Fehlermeldung so komplett gesehen habe im Client beim Schließen ein "UDP.Close();" eingefügt, aber das ändert auch nichts.

MfG janismac

Thema: [erledigt] UDP Probleme über Loopback
Am im Forum: Netzwerktechnologien

Hallo,

ich bin nach langer Zeit wieder hier im Forum, da ich ein Problem auch nach langem Debuggen und Suchen nicht lösen konnte.

Ich schreibe an einer Netzwerk-Anwendung mit Client-Server Struktur, und nutze dabei UDP, da Geschwindigkeit bei der Verbindung wichtiger ist als Zuverlässigkeit. (Es soll ein kleines 2D Spiel werden)

Client und Server Empfangen beide asynchron Daten (UdpClient.BeginReceive).
Das funktioniert auch wunderbar, solange Client und Server nicht auf der selben Maschine laufen. (Habs im LAN und übers Internet getestet)
Sobald die Verbindung übers Loopback (127.0.0.1) läuft gibts ein Problem:
Wenn sich einer der beiden Programme beendet lösen die Methoden UdpClient.BeginReceive und UdpClient.EndReceive im anderen Programm eine SocketException aus.
Das ist zum einen unlogisch, weil UDP ja angeblich verbindungslos ist.
Außerdem wird dadurch irgendwie das Socket zerstört, jeder weitere Aufruf von UdpClient.BeginReceive wird sofort mit einer weiteren SocketException quittiert.
Das mag man beim Client verschmerzen können, aber beim Server brechen damit die Verbindungen zu allen weiteren Clients ab.

Gibts es dazu eine Lösung oder einen Work-Around?

MfG janismac

Thema: C/C++ Forum gesucht
Am im Forum: Smalltalk

hi

kennt jemand ein angagiertes und aktives Forum wie dieses , welches sich mit C/C++ beschäftigt ???

MfG janismac

Thema: [gelöst] Einfache Druck-Klasse gesucht
Am im Forum: Rund um die Programmierung

Drucken

MfG janismac

Thema: Technische Umsetzung einer Methode
Am im Forum: Web-Technologien

hi

also ich würde dir ja gerne helfen, aber ich kann in der
System.Windows.Forms.WebBrowser Klasse keine methode namens DrawToBitmap finden (.NET 2)

MfG janismac

Thema: C#: string in einzelzeichen zerteilen?
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

hi


char[] char_array= "Hallo Welt!".ToCharArray();

MfG janismac

Thema: Zeichenhilfe
Am im Forum: Grafik und Sound

* KOPF VOR DIE WAND SCHLAG *

wenn du ein Color1 -> Color2 -> Color1 path brauchst mach doch einfach 2:

Color1 -> Color2 , Color2 -> Color1

MfG janismac

Thema: Chat-Aktualisierung
Am im Forum: Web-Technologien

hi

ich hab kürzlich etwas sehr ähnliches mit PHP geschrieben

ich hab iframes verwendet >> siehe hier

wenn du den source-code möchtest (also server-seitigen) "kanste haben" (PM)


MfG janismac

Thema: Zählerklasse Counter richtig implementiert?
Am im Forum: Rund um die Programmierung

hi

ich versthe nicht warum du das postet, ist doch OK
ich hätte es kaum anders realisiert

eine sache hätte ich anders gemacht, bei
SubmitOk(m_summ)
solltest du darauf achten, dass es ein SingleCastDelegat ist

z.B. so:


                bool xx = false;
                foreach(EventOkhandler evnt in SubmitOk.GetInvocationList)  xx=(evnt())?true:xx;
                if (xx)
                {
                    Console.WriteLine("Submit fired");
                    if (RaiseEvent != null)
                        RaiseEvent(x);
                    else
                        Console.WriteLine("Kein RaiseEvent");
                }

MfG janismac

Thema: window lifetime
Am im Forum: GUI: Windows-Forms

Tipp:

@legio
in David's beispiel wird von einer statischen bildschirmgröße ausgegangen

mit System.Windows.Forms.Screen.PrimaryScreen würde es bei jeder größe richtig sein

MfG janismac

Thema: Dispose() vs. Clear()
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

hi

Clear() leert die liste
Dispose() tut dies auch, desweiteren wird das objekt zerstört (speicher freigegeben) und ist damit unbrauchbar

MfG janismac

Thema: arithmetisches Mittel
Am im Forum: Basistechnologien und allgemeine .NET-Klassen

hi

ich will ja nicht unfreundlich sein, aber über ein gewisses mathematisches grundwissen solte man schon verfügen........

MfG janismac

Thema: Habt ihr ein Homepage?
Am im Forum: Smalltalk

hi

ich hab schon des öfteren gehört das sehr viele leute eine eigene Homepage haben
und hier im forum haben ja die meißten noch viel mehr mit Computer und Internet zu tun

also habt ihr eignetlich eine eigene Homepage ??
als Toplevel-Domain oder als Subdomain ???

ich habe wie vermutlich die meißten auch eine Homepage
http://janismac.de

MfG janismac

Thema: Welche Mäuse nehm ihr ??
Am im Forum: Smalltalk

hi

Logitech 510 (Maus + Tastatur)
extrem gut !!!
hab es jez seit mehr als 3/4 Jahre und noch nie baterie gewechselt !!
mit multimediafunktionen für lautstärke- und musikseteuerung
außerdem lassen sich F1 bis F12 mit belibigen funktionen belegen (programmstart,tasten-kombinationen,uvm...)

MfG janismac

Thema: MS SQL - Web Tool gesucht
Am im Forum: Datentechnologien

hallo

phpMyAdmin läuft mit MySql, kannst ja mal gugen ob MS SQL auch unrerstützt wird

ansonstren schreib doch eins selbst 8)

MfG janismac

Thema: Frage zu JavaScript
Am im Forum: Web-Technologien

hallo

zu Javascript/HTML
welches event tritt auf, wenn bei einem <select> die auswahl verändert wurde??
(konnte ich mir bisher leider nicht ergoooglen)

danke.
MfG janismac

Thema: Image Zoom
Am im Forum: GUI: Windows-Forms

hallo

mal so'n tipp, poste doch mal deinen code.......
damit kann man meißt mehr anfangen

MfG janismac