Чудеса... Заремил инкременты, таже хня
// #define ServerTCPSoket (1) //Количество сокетов void funk(void) { while(!0) {//проверяем буфера static unsigned char UkSoket; if(TxHead[UkSoket]==TxTail[UkSoket]) {//Нет данных для передачи if(TxLink[UkSoket]!=0) {//передача была включена StartTimer(&tTx,TimoutTx);//таймаут повторной передачи пакета TxLink[UkSoket]=0;//передача закончена } } else {//Есть данные для передачи if(Timer(&tTx)==0) {//Если не истек таймаут передачи return; } if(ConnectTCP[UkSoket]!=0) {//текущее подключение существует SoketTx=UkSoket;//текущее подключение //UkSoket++; //Инкремент указателя сокета //if(UkSoket >= ServerTCPSoket){UkSoket=0;} break; } } //UkSoket++; //Инкремент указателя сокета //if(UkSoket >= ServerTCPSoket) {//все сокеты просмотрены UkSoket=0; return; } } // и работаем с переменной SoketTx }// //