Winsock C++ czyszczenie bufora odbiorczego

0

Witam.
Mam prosty programik robiący za serwer TCP, który nasłuchuje na wybranym porcie. Chcę żeby odbierał on dane od klienta (moduł pomiarowy podłączony do sieci), dane te nie są przetwarzane i nie są do niczego potrzebne, chcę tylko sprawdzić jak szybko potrafi wysyłać klient. Mam problem z buforem odbiorczym serwera, nie wiem jak go czyścić, mianowicie chodzi mi o to, że po kilkunastu segmentach okno odbiorcze maleje do 0 co uniemożliwia komunikację. Nie mogłem znaleźć żadnej funkcji na stronie msdn, może ktoś wie jak to zrobić?

Poniżej kod programu.

#include "stdafx.h"
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
#define WIN32_LEAN_AND_MEAN
#include <windows.h>
#include <winsock2.h>


int main(int argc, char **argv)
{
	WORD RequiredVersion;
	WSADATA WData;
	SOCKET ss, s;
	struct sockaddr_in addr, incoming;
	int alen;
	long val;
	int port;

	char pakiet[1600];

	printf("Numer portu: ");
	scanf("%d", &port);
	

	RequiredVersion = MAKEWORD(2, 0);

	if (WSAStartup(RequiredVersion, &WData) != 0) {
		printf("Blad inicjalizacji WinSock2\n");
		return 1;
	}

	addr.sin_family = AF_INET;
	addr.sin_port = htons(port);
	addr.sin_addr.s_addr = INADDR_ANY;

	ss = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP);
	bind(ss,(struct sockaddr*) &addr, sizeof(addr));
	listen(ss, 10);
	alen = sizeof(incoming);
	while((s = accept(ss, (struct sockaddr*) &incoming, &alen)) 
	       != INVALID_SOCKET) {
	    recv(s, pakiet, sizeof(pakiet)-1, 0);
	}
	closesocket(ss);

	WSACleanup();
	return 0;
}
0

memcpy
bzero <- ta chyba lepsza

0

Ale do czego miałbym tych funkcji użyć? Funkcja recv() kopiuje odebrane dane do zdefiniowanej w programie tablicy pakiet. Nie trzeba jakiejś funkcji wywołać, która spowoduje ponowne przeliczenie okna, albo inaczej skopiować?
Mam podobny program będący klientem serwera i tam jak odbieram napływający strumień danych funkcją recv() okno jest cały czas takie samo, nie zmniejsza się, a tutaj każdy odebrany segment powoduje zmniejszenie okna.

1 użytkowników online, w tym zalogowanych: 0, gości: 1