Byla vydána verze 4.0 open source programu na kreslení grafů Veusz (Wikipedie). Přehled novinek v poznámkách k vydání. Proběhla portace na Qt 6.
Dibuja je jednoduchý kreslící program inspirovaný programy Paintbrush pro macOS a Malování pro Windows. Vydána byla verze 0.26.0.
Byla vydána nová verze 9.13 z Debianu vycházející linuxové distribuce DietPi pro (nejenom) jednodeskové počítače. Přehled novinek v poznámkách k vydání.
Na čem aktuálně pracují vývojáři GNOME a KDE Plasma? Pravidelný přehled novinek v Týden v GNOME a Týden v KDE Plasma.
Byla vydána nová stabilní verze 3.22.0, tj. první z nové řady 3.22, minimalistické linuxové distribuce zaměřené na bezpečnost Alpine Linux (Wikipedie) postavené na standardní knihovně jazyka C musl libc a BusyBoxu. Přehled novinek v poznámkách k vydání.
FEL ČVUT vyvinula robotickou stavebnici pro mladé programátory. Stavebnice Brian byla navržená speciálně pro potřeby populární Robosoutěže. Jde ale také o samostatný produkt, který si může koupit každý fanoušek robotiky a programování od 10 let, ideální je i pro střední školy jako výuková pomůcka. Jádro stavebnice tvoří programovatelná řídicí jednotka, kterou vyvinul tým z FEL ČVUT ve spolupráci s průmyslovými partnery. Stavebnici
… více »Ubuntu bude pro testování nových verzí vydávat měsíční snapshoty. Dnes vyšel 1. snapshot Ubuntu 25.10 (Questing Quokka).
Společnost Netgate oznámila vydání nové verze 2.8.0 open source firewallové, routovací a VPN platformy pfSense (Wikipedie) postavené na FreeBSD. Přehled novinek v poznámkách k vydání.
Byla vydána nová verze 6.16 živé linuxové distribuce Tails (The Amnesic Incognito Live System), jež klade důraz na ochranu soukromí uživatelů a anonymitu. Tor Browser byl povýšen na verzi 14.5.3. Linux na verzi 6.1.140. Další změny v příslušném seznamu.
Člověk odsouzený za obchod s drogami daroval letos ministerstvu spravedlnosti 468 kusů kryptoměny bitcoin, které pak resort v aukcích prodal za skoro miliardu korun. Darováním se zabývá policejní Národní centrála proti organizovanému zločinu (NCOZ). Deníku N to potvrdil přímo ministr spravedlnosti Pavel Blažek (ODS). Podle resortu bylo nicméně vše v souladu s právem.
Zdravím.
mám třídu (Odesilatel), která má simulovat přístroj - posílá data po UDP na danou ip po daném portu - konkrétním na 127.0.0.1:2023
Druhá (Prijemce) třída přijímá data po UDP na danym portu (odkukoliv), zpracuje je (udělá z nich floaty) a uloží do bufferu.
Pokud je simulátor puštěnej z jinýho programu než příjemce, vše funguje. Pokud jsou puštěny z jednoho, tak se přijme jen 92 packetů, pak jich to 260 přeskočí (+- 20, tehnle počet se mění, ale 92 jich to přijme vždy a 93 už je posunutej) a pak to zase přijímá normálně - další stovky packetů (nebo to občas začne zase přeskakovat).
Odesilatel a příjemce jsou ve vlastních threadech. Wireshark říká, že odesilatel odešle data správně, při krokování je vidět, že příjemce je už v int size = read(socketDesc, data, 65535);
dostane přeskonečené. Trápim se s tim celý den a nemam ponětí, co dělám špatně.
Pokud nepošlu 981bytů, ale míň, tak to funguje normálně (asi by to začlo přeskakovat někde dál), takže předpokldám, že se něco někam nevejde, ale nemůžu přijít na to co/kam. Vidíte v tom někdo nějakou botu?
Projemce p;
Odesilatel o;
o.start();
p.startReadData();
while(1){
if(m.dataLength() > 0){
Data<float> d = p.getData();
for(int y = 0;y<d.length();y++)
fprintf(outF,"%f;%f\n",...);//vypis dat do souboru
}
}
Prijemce:
Prijemce::Prijemce(){
socketDesc = socket( AF_INET, SOCK_DGRAM, IPPROTO_UDP );
sockaddr_in serverSock;
serverSock.sin_family = AF_INET;
serverSock.sin_addr.s_addr = htonl(INADDR_ANY);
serverSock.sin_port = htons(2023);
bind( socketDesc, (const sockaddr*) &serverSock, sizeof(serverSock) );
}
void Prijemce::startReadData(){
th = new std::thread(&MeterUDP::readPackets,this);
}
Data<float> Prijemce:getData(){
mutex.lock();
Data<float> ret = dataBuffer;
dataBuffer.clear();
mutex.unlock();
return ret;
}
void Prijemce::readPackets(){
ByteArray *bA;
while(1){
fd_set fds;
timeval tv;
FD_ZERO(&fds);
FD_SET(socketDesc, &fds);
tv.tv_sec = 1;
tv.tv_usec = 0;
u8 data[65535];
int test = 0;
int ret = select(socketDesc+1, &fds, NULL, NULL, &tv);
if(ret == 1){
int size = read(socketDesc, data, 65535);
Bytes b;
b.insert(b.end(),data,data+size);
bA = new ByteArray(b);
}
}
Data<float> dataBuffer = kouzla(bA);//konertuje ByteArray do pouzitelnyho formatu
}
Odesilatel:
Odesilatel::Odesilatel(){
sockfd = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP)
bzero(&serv_addr, sizeof(serv_addr));
serv_addr.sin_family = AF_INET;
serv_addr.sin_port = htons(2023);
net_aton("127.0.0.1", &serv_addr.sin_addr)
}
void Odesilatel::start(){
th = new std::thread(&Odesilatel::sendData,this);
}
void Odesilatel::sendData(){
while(1){
u8 packet[981];
for(int i = 0;i<981;i++)
packet[i] = data;//tady naplnim data (ze souboru, ale to neni podstatny)
sendto(sockfd, packet, 981, 0, (struct sockaddr*)&serv_addr, slen);
}
}
Řešení dotazu:
Tiskni
Sdílej: