Steve Jobs a superpočítač Cray-1 budou vyobrazeny na pamětních jednodolarových mincích vyražených v příštím roce v rámci série Americká inovace. Série má 57 mincí, tj. 57 inovací. Poslední 4 mince budou vyraženy v roce 2032.
Byl zveřejněn průběžně aktualizovaný program konference OpenAlt 2025 o otevřeném softwaru a datech, IT bezpečnosti, DIY a IoT. Konference proběhne o víkendu 1. a 2. listopadu v prostorách FIT VUT v Brně. Vstup je zdarma.
Senát včera opětovně nepřijal návrh ústavního zákona, který měl do Listiny základních práv a svobod zakotvit právo občanů platit v hotovosti nebo být off-line. Návrh předložila skupina senátorů již v roce 2023. Senát dnes návrh neschválil, ale ani nezamítl. Pokud by ho přijal, dostala by ho k projednání Sněmovna a vyjádřila by se k němu vláda.
V programovacím jazyce Go naprogramovaná webová aplikace pro spolupráci na zdrojových kódech pomocí gitu Forgejo byla vydána ve verzi 13.0 (Mastodon). Forgejo je fork Gitei.
Společnost Eclypsium se na svém blogu rozepsala o bezpečnostním problému počítačů Framework. Jedná se o zranitelnost v UEFI umožňující útočníkům obejít Secure Boot.
Editor kódů Zed (Wikipedie) po macOS a Linuxu s verzí 0.208.4 už běží také ve Windows.
Apple dnes představil 14palcový MacBook Pro, iPad Pro a Apple Vision Pro s novým čipem M5.
Debian pro mobilní zařízení Mobian (Wikipedie) byl vydán ve verzi 13 Trixie. Nová stabilní verze je k dispozici pro PINE64 PinePhone, PinePhone Pro a PineTab, Purism Librem 5, Google Pixel 3a a 3a XL, OnePlus 6 a 6T a Xiaomi Pocophone F1.
Operátor O2 představil tarif Datamanie 1200 GB . Nový tarif přináší 1200 GB dat s neomezenou 5G rychlostí, a také možnost neomezeného volání do všech sítí za 15 Kč na den. Při roční variantě předplatného zákazníci získají po provedení jednorázové platby celou porci dat najednou a mohou je bezstarostně čerpat kdykoli během roku. Do 13. listopadu jej O2 nabízí za zvýhodněných 2 988 Kč. Při průměrné spotřebě tak 100 GB dat vychází na 249 Kč měsíčně.
Byly publikovány informace o útoku na zařízení s Androidem pojmenovaném Pixnapping Attack (CVE-2025-48561). Aplikace může číst citlivá data zobrazovaná jinou aplikací. V demonstračním videu aplikace čte 2FA kódy z Google Authenticatoru.
#define BUFSIZE 100 #define PORT 5555 int main(int argc, char *argv[]) { hostent *host; // Vzdálený počítač; sockaddr_in serverSock; // Vzdálený "konec potrubí" int mySocket; // Soket char buf_in[BUFSIZE]; // Přijímací buffer char buf_out[BUFSIZE]; // Odesilaci buffer fd_set inputs, testfds; struct timeval timeout; // Zjistíme info o vzdáleném počítači if ((host = gethostbyname(argv[1])) == NULL) { printf("Špatná adresa\n"); return -1; } // Vytvoříme soket if ((mySocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP)) == -1) { printf("Nelze vytvořit soket\n"); return -1; } // Zaplníme strukturu sockaddr_in // 1) Rodina protokolů serverSock.sin_family = AF_INET; // 2) Číslo portu, ke kterému se připojíme serverSock.sin_port = htons(PORT); // 3) Nastavení IP adresy, ke které se připojíme memcpy(&(serverSock.sin_addr), host->h_addr, host->h_length); // Připojení soketu if (connect(mySocket, (sockaddr *)&serverSock, sizeof(serverSock)) == -1) { printf("Nelze navázat spojení\n"); return -1; } // Odeslání dat while(1){ fgets(buf_out, BUFSIZE, stdin); buf_out[strlen(buf_out)-1] = '\0';//odstraneni kone radky if(strcmp(buf_out,"LOGOUT")!=0){ if (send(mySocket, buf_out, strlen(buf_out), 0) == -1) { printf("Problém s odesláním dat\n"); return -1; } // Příjem dat //if((size = recv(mySocket, buf_in, BUFSIZE, 0)) != -1) //{ // printf("Přijato: [%s]\n"); //} } else{ // odhlasime spojeni close(mySocket); exit(0); } } printf("Odeslano\n"); return 0; }
#define BUFSIZE 100 #define PORT 5555 int main(int argc, char *argv[]) { hostent *host; // Vzdálený počítač; sockaddr_in serverSock; // Vzdálený "konec potrubí" int mySocket; // Soket char buf_in[BUFSIZE]; // Přijímací buffer char buf_out[BUFSIZE]; // Odesilaci buffer fd_set read, write; FD_ZERO(&read); FD_ZERO(&write); // Zjistíme info o vzdáleném počítači if ((host = gethostbyname(argv[1])) == NULL) { printf("Špatná adresa\n"); return -1; } // Vytvoříme soket if ((mySocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP)) == -1) { printf("Nelze vytvořit soket\n"); return -1; } else{ // Zaplnění množiny sokety FD_SET(mySocket, &read); FD_SET(STDIN_FILENO, &read); } // Zaplníme strukturu sockaddr_in // 1) Rodina protokolů serverSock.sin_family = AF_INET; // 2) Číslo portu, ke kterému se připojíme serverSock.sin_port = htons(PORT); // 3) Nastavení IP adresy, ke které se připojíme memcpy(&(serverSock.sin_addr), host->h_addr, host->h_length); // Připojení soketu if (connect(mySocket, (sockaddr *)&serverSock, sizeof(serverSock)) == -1) { printf("Nelze navázat spojení\n"); return -1; } // Zavolám select (V Linuxu musím mít nastavenou proměnnou max.) int ret = select(2, &read, NULL, NULL, NULL); while(1){ if (ret == -1){ perror("select()"); } else if(ret){ // odeslam data if(FD_ISSET(STDIN_FILENO, &read)){ fgets(buf_out, BUFSIZE, stdin); buf_out[strlen(buf_out)-1] = '\0';//odstraneni kone radky if(strcmp(buf_out,"LOGOUT")!=0){ if (send(mySocket, buf_out, strlen(buf_out), 0) == -1){ return -1; } } else{ // odhlasime spojeni close(mySocket); exit(0); } } //Příjem dat else if(FD_ISSET(mySocket, &read)){ if(recv(mySocket, buf_in, BUFSIZE, 0) != -1) { printf("Přijato: [%s]\n"); } } } } printf("Odeslano\n"); return 0; }
// Zavolám select (V Linuxu musím mít nastavenou proměnnou max.)Tak si ji nastav... man select, číslo nejvyššího fd plus jedna.
select(STDIN_FILENO>mySocket ? STDIN_FILENO+1 : MySocket+1, ...jinak stdin je nula, takže to bude MySocket+1
... select(FD_SETSIZE, ...
int main(int argc, char *argv[]) { hostent *host; // Vzdálený počítač; sockaddr_in serverSock; // Vzdálený "konec potrubí" int mySocket; // Soket char buf_in[BUFSIZE]; // Přijímací buffer char buf_out[BUFSIZE]; // Odesilaci buffer fd_set read, write; FD_ZERO(&read); FD_ZERO(&write); // Zjistíme info o vzdáleném počítači if ((host = gethostbyname(argv[1])) == NULL) { printf("Špatná adresa\n"); return -1; } // Vytvoříme soket if ((mySocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP)) == -1) { printf("Nelze vytvořit soket\n"); return -1; } else{ // Zaplnění množiny sokety FD_SET(mySocket, &read); FD_SET(STDIN_FILENO, &read); } // Zaplníme strukturu sockaddr_in // 1) Rodina protokolů serverSock.sin_family = AF_INET; // 2) Číslo portu, ke kterému se připojíme serverSock.sin_port = htons(PORT); // 3) Nastavení IP adresy, ke které se připojíme memcpy(&(serverSock.sin_addr), host->h_addr, host->h_length); // Připojení soketu if (connect(mySocket, (sockaddr *)&serverSock, sizeof(serverSock)) == -1) { printf("Nelze navázat spojení\n"); return -1; } while(1){ // Zavolám select (V Linuxu musím mít nastavenou proměnnou max.) int ret = select(STDIN_FILENO > mySocket ? STDIN_FILENO+1 : mySocket+1, &read, NULL, NULL, NULL); if (ret == -1){ perror("select()"); } else if(ret){ // odeslam data if(FD_ISSET(STDIN_FILENO, &read)){ fgets(buf_out, BUFSIZE, stdin); buf_out[strlen(buf_out)-1] = '\0';//odstraneni kone radky if(strcmp(buf_out,"LOGOUT")!=0){ if (send(mySocket, buf_out, strlen(buf_out), 0) == -1){ return -1; } } else{ // odhlasime spojeni close(mySocket); exit(0); } } //Příjem dat else if(FD_ISSET(mySocket, &read)){ if(recv(mySocket, buf_in, BUFSIZE, 0) != -1) { printf("Přijato: [%s]\n", buf_in); } } } } printf("Odeslano\n"); return 0; }
int main(int argc, char *argv[]) { hostent *host; // Vzdálený počítač; sockaddr_in serverSock; // Vzdálený "konec potrubí" int mySocket; // Soket char buf_in[BUFSIZE]; // Přijímací buffer char buf_out[BUFSIZE]; // Odesilaci buffer fd_set read, write; FD_ZERO(&read); FD_ZERO(&write); // Zjistíme info o vzdáleném počítači if ((host = gethostbyname(argv[1])) == NULL) { printf("Špatná adresa\n"); return -1; } // Vytvoříme soket if ((mySocket = socket(AF_INET, SOCK_STREAM, IPPROTO_TCP)) == -1) { printf("Nelze vytvořit soket\n"); return -1; } else{ // Zaplnění množiny sokety FD_SET(mySocket, &read); FD_SET(STDIN_FILENO, &read); } // Zaplníme strukturu sockaddr_in // 1) Rodina protokolů serverSock.sin_family = AF_INET; // 2) Číslo portu, ke kterému se připojíme serverSock.sin_port = htons(PORT); // 3) Nastavení IP adresy, ke které se připojíme memcpy(&(serverSock.sin_addr), host->h_addr, host->h_length); // Připojení soketu if (connect(mySocket, (sockaddr *)&serverSock, sizeof(serverSock)) == -1) { printf("Nelze navázat spojení\n"); return -1; } while(1){ // Zavolám select (V Linuxu musím mít nastavenou proměnnou max.) int ret = select(STDIN_FILENO > mySocket ? STDIN_FILENO+1 : mySocket+1, &read, NULL, NULL, NULL); if (ret == -1){ perror("select()"); } else if(ret){ // odeslam data if(FD_ISSET(STDIN_FILENO, &read)){ fgets(buf_out, BUFSIZE, stdin); buf_out[strlen(buf_out)-1] = '\0';//odstraneni kone radky if(strcmp(buf_out,"LOGOUT")!=0){ if (send(mySocket, buf_out, strlen(buf_out), 0) == -1){ return -1; } } else{ // odhlasime spojeni close(mySocket); exit(0); } } //Příjem dat else if(FD_ISSET(mySocket, &read)){ if(recv(mySocket, buf_in, BUFSIZE, 0) != -1) { printf("Přijato: [%s]\n", buf_in); } } } } printf("Odeslano\n"); return 0; }
Tiskni
Sdílej: