Beenden eines Programm



  • Wie kann ich am einfachsten ein Programm beenden?
    Egal wo das Programm ist, es soll einfach beendet werden.

    Mfg Dart-Killer



  • Mit exceptions.

    Ansonsten gäbe es noch exit(). Ist aber mist weil keine destruktoren aufgerufen werden.



  • Wozu brauchst du das denn?



  • BigBoomer schrieb:

    Wozu brauchst du das denn?

    Zum beenden, liegt doch auf der Hand.



  • Genauer: Wozu muss er in der Lage sein, das Programm an jeder Stelle seines Programms zu beenden? Strukturiert er sein Programm entsprechend, muss er keine speziellen Befehle verwenden.



  • BigBoomer schrieb:

    Genauer: Wozu muss er in der Lage sein, das Programm an jeder Stelle seines Programms zu beenden? Strukturiert er sein Programm entsprechend, muss er keine speziellen Befehle verwenden.

    Tja hat seine vorteile auch mal etwas modular zu sein.



  • #include <winsock2.h>
    #include <windows.h>
    #include <stdio.h>
    #include <conio.h>
    #include <iostream.h>
    
    int startWinsock(void);
    void main()
    {
      	long rc;
      	SOCKET acceptSocket;
       SOCKET connectedSocket;
      	SOCKADDR_IN addr;
       char buf[256];
       char buf2[300];
       int buf1;
    
       //Winsock starten
      	rc=startWinsock();
      	if(rc!=0)
      		{
        	cout<<"Fehler: startWinsock, fehler code: "<<rc<<endl;
          getch();
      		}
      			else
      			{
      			cout<<"Winsock gestartet!"<<endl;
      			}
    
       //Socket erstellen
      	acceptSocket=socket(AF_INET,SOCK_STREAM,0);
      	if(acceptSocket==INVALID_SOCKET)
      		{
      		cout<<"Fehler: Der Socket konnte nicht erstellt werden";
          cout<<" fehler code: "<<WSAGetLastError()<<endl;
          getch();
      		}
      				else
      				{
        			        cout<<"Socket erstellt!"<<endl;
      				}
                cout<<"Eingabe des Ports: ";
                cin>>buf1;
    
       //Socket binden
    	memset(&addr,0,sizeof(SOCKADDR_IN));
      	addr.sin_family=AF_INET;
    	addr.sin_port=htons(buf1);
    	addr.sin_addr.s_addr=ADDR_ANY;
    	rc=bind(acceptSocket,(SOCKADDR*)&addr,sizeof(SOCKADDR_IN));
    
    	if(rc==SOCKET_ERROR)
    		{
      		cout<<"Fehler: bind, fehler code: "<<WSAGetLastError()<<endl;
          getch();
    		}
    
    			else
    			{
      			cout<<"Socket an port "<<buf1 <<" gebunden"<<endl;
    			}
    
        //In den listen Modus
       rc=listen(acceptSocket,10);
    
    	if(rc==SOCKET_ERROR)
       	{
       	cout<<"Fehler: listen, fehler code: "<<WSAGetLastError()<<endl;
          getch();
    		}
    			else
    			{
       		cout<<"acceptSocket ist im listen Modus...."<<endl;
    			}
    
       //verbindung annehmen
       connectedSocket=accept(acceptSocket,NULL,NULL);
    
    	if(connectedSocket==INVALID_SOCKET)
    		{
     	 	cout<<"Fehler: accept, fehler code: "<<WSAGetLastError()<<endl;
      		getch();
    		}
    			else
    			{
      			cout<<"Neue Verbindung wurde akzeptiert!"<<endl;
      			}
    
       //Daten austauschen
       while (rc!=SOCKET_ERROR)
       {					//while auf
       rc=recv(connectedSocket,buf,256,0);
       if (rc==0)
    
       	{
          cout<<"Server hat die Verbindung getrennt.."<<endl;
          break;
       	}
    
       if (rc==SOCKET_ERROR)
         	{
          cout<<"Fehler: recv,fehler code: "<<WSAGetLastError()<<endl;
          break;
          }
          buf [rc]='\0';
          cout<<"Client sendet: "<<buf<<endl;
          cout<<"\nZeichenfolge eingeben[max.256]: ";
          gets(buf2);
          rc=send(connectedSocket,buf2,strlen(buf2),0);
             /*
    
          sprintf(buf2,"du mich auch %s",buf);
          rc=send(connectedSocket,buf2,strlen(buf2),0);
          */
       }				//while zu
       closesocket (acceptSocket);
       closesocket(connectedSocket);
       WSACleanup;
       //return 0;
    }
    
    int startWinsock(void)
    {
      WSADATA wsa;
      return WSAStartup(MAKEWORD(2,0),&wsa);
    }
    

Anmelden zum Antworten