[Request] TCP-сервер на WinSock

Для тех, кто хочет сделать мир лучше.
Ответить
Сообщение
Автор
Аватара пользователя
NiGHt-LEshiY
Полковник
Полковник
Сообщения: 10258
Зарегистрирован: 13.06.2008
Откуда: Россия
Благодарил (а): 752 раза
Поблагодарили: 2667 раз
Контактная информация:

#1 Сообщение 10.08.2010, 18:20

Рекве запрашиваю минималистичный TCP-сервер (прием и обработка запросов), написанный с использованием простейших функций winsock.
Например, получение данных (recv) в цикле и всё такое.
Нормальных реализаций в сети не нашёл, а мои работают криво. Поэтому и обращаюсь к девелоперам.
Кодекс поведения участников сообщества — обязательно к прочтению.
Просьба присылать сообщения об ошибках в ЛС.

Fire666
Эксперты no-Steam
Эксперты no-Steam
Сообщения: 2600
Зарегистрирован: 15.02.2007
Откуда: Москва
Благодарил (а): 2 раза
Поблагодарили: 43 раза
Контактная информация:

#2 Сообщение 10.08.2010, 22:15

Тебе простой или асинхронный ?

Аватара пользователя
NiGHt-LEshiY
Полковник
Полковник
Сообщения: 10258
Зарегистрирован: 13.06.2008
Откуда: Россия
Благодарил (а): 752 раза
Поблагодарили: 2667 раз
Контактная информация:

#3 Сообщение 10.08.2010, 22:17

Простой для начала.
Кодекс поведения участников сообщества — обязательно к прочтению.
Просьба присылать сообщения об ошибках в ЛС.

Fire666
Эксперты no-Steam
Эксперты no-Steam
Сообщения: 2600
Зарегистрирован: 15.02.2007
Откуда: Москва
Благодарил (а): 2 раза
Поблагодарили: 43 раза
Контактная информация:

#4 Сообщение 10.08.2010, 22:21

NiGHt-LEshiY, ничего если я дам вариант на Socket Wraper Lib ?

Код: Выделить всё

		Csocket *pSocket = new Csocket( eSocketProtocolIP );

		pSocket->BindPort( 80 );

		pSocket->ListenServer( );

		pSocket->AcceptConnect( );
Далее делаешь цикл для приема и обработки пакетов.

Код: Выделить всё

while( true )
{
		char get[512];
		pSocket->Recv( get ); //получаеи

		parscepack( get  ); //парсим
}


Аватара пользователя
NiGHt-LEshiY
Полковник
Полковник
Сообщения: 10258
Зарегистрирован: 13.06.2008
Откуда: Россия
Благодарил (а): 752 раза
Поблагодарили: 2667 раз
Контактная информация:

#5 Сообщение 10.08.2010, 22:25

Ничего, если он написан на СИ, или в крайнем случае на С++, но без классов и лишнего мусора.
А вообще, давай в любом случае
Кодекс поведения участников сообщества — обязательно к прочтению.
Просьба присылать сообщения об ошибках в ЛС.

Fire666
Эксперты no-Steam
Эксперты no-Steam
Сообщения: 2600
Зарегистрирован: 15.02.2007
Откуда: Москва
Благодарил (а): 2 раза
Поблагодарили: 43 раза
Контактная информация:

#6 Сообщение 10.08.2010, 22:32

Посмотри пример.
вообщем суть в чем.
создаешь как обычно сокет для TCP
потом биндишь нужный тебе порт , а вот потом идет специфика для сервера.
listen и accept, ну а дальше ставишь в цикле recv и парсишь входящие пакеты.

http://www.codeproject.com/KB/IP/winsockintro01.aspx

кстати так же советую почитать
http://www.codeproject.com/KB/IP/winsockintro03.aspx

Аватара пользователя
NiGHt-LEshiY
Полковник
Полковник
Сообщения: 10258
Зарегистрирован: 13.06.2008
Откуда: Россия
Благодарил (а): 752 раза
Поблагодарили: 2667 раз
Контактная информация:

#7 Сообщение 10.08.2010, 23:06

Сердечно благодарю
Кодекс поведения участников сообщества — обязательно к прочтению.
Просьба присылать сообщения об ошибках в ЛС.

Ответить