Добавил:
Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:

Labas / server / server

.cpp
Скачиваний:
4
Добавлен:
15.06.2014
Размер:
2.09 Кб
Скачать
// server.cpp : Defines the entry point for the console application.
//

#include "stdafx.h"
#include "server.h"
#include <windows.h>
#include <Winsock2.h>
#define PORT1 2000;



#ifdef _DEBUG
#define new DEBUG_NEW
#endif


// The one and only application object

CWinApp theApp;

using namespace std;

int _tmain(int argc, TCHAR* argv[], TCHAR* envp[])
{
	int nRetCode = 0;

	// initialize MFC and print and error on failure
	if (!AfxWinInit(::GetModuleHandle(NULL), NULL, ::GetCommandLine(), 0))
	{
		// TODO: change error code to suit your needs
		_tprintf(_T("Fatal Error: MFC initialization failed\n"));
		nRetCode = 1;
	}
	else
	{


SOCKET s1, s2;
	int len;
	char buf[100], buf1[100];
	char *txt="Соединение установлено";
	char *msg="Сервер завершил работу";
	struct sockaddr_in sin1, sin2;
	//struct hostent *hp;
	//CString comp;
	//Инициализация библиотеки
	WSADATA wsaData;
	if( WSAStartup(MAKEWORD(2, 2), &wsaData)!=0 )
	{
		printf("Error1\n");
		return 0;
	}


	//Создать сокет
	s1=socket(AF_INET, SOCK_STREAM, 0);
	//comp='qw';
	//hp=gethostbyname(comp);
	
	//Заполнить структуру адреса
	memset ((char*)&sin1,'\0', sizeof(sin1));
	sin1.sin_family=AF_INET;
	sin1.sin_addr.s_addr=INADDR_ANY;
	sin1.sin_port=PORT1;
	//Подключить сокет
	if(bind(s1,(struct sockaddr *)&sin1, sizeof(sin1))!=0)
	{
		printf("Error2\n");
		return 0;
	}
	//перевести сокет в состояние "слушать"
	listen(s1, 3);
	//цикл ожидания вызовов клиентов
	for(int i=0; i<100; i++)
	{
		len=sizeof(sin2);
		//Ожидание запросов от клиентов
		s2=accept(s1,(struct sockaddr*)&sin2, &len);

		//Запрос пришёл, посылаем информацию
		send(s2,txt,strlen(txt),0);
		//Ожидание ответа
		len=recv(s2, buf, 100, 0);
		//Вывод ответа
		buf[len]='\0';
		CharToOem(buf, buf1);
		printf("%s\n",buf1);
		//закрытие связи
		shutdown(s2,0);
		//закрытие сокета
		closesocket(s2);
	};
	CharToOem(msg,buf1);
	printf("%s\n",buf1);
	closesocket(s1);





		// TODO: code your application's behavior here.
	}

	return nRetCode;
}
Соседние файлы в папке server