Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > C/C++ программирование > Общие вопросы C/C++
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 19.11.2015, 19:32   #1
yakimechik
Пользователь
 
Регистрация: 28.01.2015
Сообщений: 10
По умолчанию Программа сразу завершается

Здравствуйте! Я написал программу с конфигурацией решения Release, при запуске exe-файла программа тут же закрывается, а то что она выводит на экран видно доли секунды. Перепробовал и getch() и system("pause") и тому подобное, не помогло Что делать?
Код:
Код:
// Server.cpp: определяет точку входа для консольного приложения.
//

#include "stdafx.h"
#include "iostream"
#include <WinSock2.h>
#include <stdio.h>
#include <conio.h>
#pragma comment (lib, "Ws2_32.lib")
char szReq[60];

using namespace std;

int main(){
	SetConsoleOutputCP(1251);
	WORD sockVer;
	WSADATA wsaData;
	
	int retVal;
			sockVer = MAKEWORD(2, 2);

		WSAStartup(sockVer, (LPWSADATA)&wsaData);

		//Создаем сокет
		SOCKET servSock = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP);

		if (servSock == INVALID_SOCKET) {
			cout << "Unable to create socket" << endl;
			WSACleanup();
			return 1;
		}//if
		SOCKADDR_IN sin;
		sin.sin_family = AF_INET;
		sin.sin_port = htons(11111);
		sin.sin_addr.s_addr = INADDR_BROADCAST;

		Sleep(10000);
		retVal = bind(servSock, (LPSOCKADDR)&sin, sizeof(sin));
		if (retVal == SOCKET_ERROR) {
			cout << "Unable to bind" << endl;
			WSACleanup();
			return SOCKET_ERROR;
		}//if

		/*retVal = listen(servSock, 10);
		if (retVal == SOCKET_ERROR) {
			cout << "Unable to listen" << endl;
			WSACleanup();
			return SOCKET_ERROR;
		}//if*/

		SOCKET clientSock;
		for (int i = 0;i < 100;i++)
			clientSock = accept(servSock, NULL, NULL);

		if (clientSock == INVALID_SOCKET) {
			cout << "Unable to accept" << endl;
			WSACleanup();
			return SOCKET_ERROR;
		}//if*/


		retVal = recvfrom(clientSock, szReq, 20, 0, (LPSOCKADDR)&sin, (int*)sizeof(sin));
		if (retVal == SOCKET_ERROR) {
			cout << "Unable to recv" << endl;
			return SOCKET_ERROR;
		}//if

		printf("Got the request from client\n%s\n", szReq);

		char *szResp = "Response";

		cout << "Sending response from server" << endl;
		retVal = sendto(clientSock, szResp, strlen(szResp), 0, (LPSOCKADDR)&sin, (int)sizeof(sin));

		if (retVal == SOCKET_ERROR) {
			cout << "Unable to send" << endl;
			return SOCKET_ERROR;
		}//if

		closesocket(clientSock);
		closesocket(servSock);

		WSACleanup();
		_getch();
		system("pause");
	
	return 0;
}//main
yakimechik вне форума Ответить с цитированием
Старый 19.11.2015, 20:14   #2
p51x
Старожил
 
Регистрация: 15.02.2010
Сообщений: 15,695
По умолчанию

У вас ретурнов то не одна штука! Либо перед каждым ставьте задержку, либо запускайте прогу в консоли.

П.С. Не стоит из мейна возвращать сторонний код ошибки, типа сокет_еррор (если вы не мониторите это специально). Раз виндовс у вас подключен пользуйтесь екзит_саксес и екзит_фол

Последний раз редактировалось p51x; 19.11.2015 в 20:16.
p51x вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Программа работает, выдает правильные ответы, но завершается ошибкой zorg-kirill Visual C++ 5 20.11.2012 18:57
Как сделать, чтобы программа работала сразу через 20 сайтов? tima777 Работа с сетью в Delphi 4 13.08.2011 20:48
Программа стартует и сразу же завершается IceExecutioner Общие вопросы Delphi 1 03.03.2011 13:18
Синий кружок должен двигаться треугольной траектории, программа завершается нажатием любой клавиши. Pan_rust Паскаль, Turbo Pascal, PascalABC.NET 3 24.05.2010 23:02
delphi7 программа после компиляции сразу закрывается fredd Помощь студентам 1 30.10.2008 14:25