#socket najlepsze najnowsze

PlugaweWarzywo 2023-04-24 11:15:07 +0
#programowanie #sieci #siecikomputerowe #jezykc #winsock #socket Hej Mireczki, czy Ktoś z Was ogarnia bibliotekę socket?

Chodzi mi tutaj o podstawową funkcję connect(), czy można ją wykorzystać do tego aby połączyć się z adresem 8.8.8.8 potwierdzając tym samym że mamy dostępne połącznie interenetowe? Gdzieś przeczytałem że to wystarczy - taki prosty PING. Jednak kiedy oglądałem źródła komendy ping.c to tam nie korzystali z connect() tylko od razu po stwqorzeniu socketa dawali send() wysylajac pakiet icmp. Jak zrobić? Chodzi mi tu o szybkie sprawdzenie polaczenia z internetem. czy connect() powinien zadziałać i lepiej coś wysłać send() ?
MamCieNaHita 2023-04-24 12:58:11 +2
@PlugaweWarzywo: zastanów się na której warstwie chcesz działać. ping działa po ICMP, a connecta zwykle używasz do zestawienia TCP
gentooman 2023-04-24 15:37:20 +1
@PlugaweWarzywo: Jeszcze możesz mieć problem uprawnień. Żeby wysłać pakiet ICMP potrzebujesz socket typu RAW, a tego zwykły użytkownik nie może zrobić. Systemowy Ping ma dodatkowy atrybut CAP_NET_RAW na Linuxach. Na Windowsa jest specjalne API https://learn.microsoft.com/en-us/windows/win32/api/icmpapi/nf-icmpapi-icmpsendecho?redirectedfrom=MSDN

Wcześniej ci pisałem że takie sprawdzenie lepiej robić po HTTP
pokaż komentarze (8)
filozofw 2018-08-28 18:47:36 +2
W sumie to chciałbym się upewnić, że dobrze rozumiem: ( #spring #socket #stomp)
nie chcę zwracać wiadomości wszystkim subskrybentom danego tematu, a raczej tylko tym spełniającym pewne kryteria - pula osób, które będą dostawać w danej chwili wiadomości od serwera na dany temat będzie się dynamicznie zmieniać.
Do takiej sytuacji STOMP się nie nadaje, no nie? Jest jakaś lepsza alternatywa dla pisania tego w taki sposób https://www.devglan.com/spring-boot/spring-websocket-integration-example-without-stomp (w porównaniu do przykładów z STOMPEM i ładnymi adnotacjami Springa, to nie wydaje się zbyt eleganckie)? macie może jakieś fajne przykłady?
z góry dzięki za pomoc ^^
#programowanie
sucharixx 2016-04-04 22:51:31 +1
Mirki jak pobrać listę klientów z danego pokoju w socket.io?

Mam takie coś:

`var clients = io.sockets.adapter.rooms['myroom'];
console.log(clients);
for (var clientId in clients) {
console.log(io.sockets.connected[clientId]);
}`

ale zwraca mi:
undefined
undefined
undefined
undefined

Jak to ogarnąć w najnowszej wersji?
#programowanie #socket
r.....t 2016-04-04 22:52:18 +0
@sucharixx: zdefiniować to nie będzie undefined.
sucharixx 2016-04-04 22:54:28 +0
@rekt: Jest zdefiniowane
`Room {
sockets:
{ '/#PZWxBLFhIM2Hy8V1AAAC': true,
'/#a737shNUZC6KOMz8AAAD': true },
length: 2 }
`
Tylko jak się dostać do id?
pokaż komentarze (3)
MlodyInformatyk 2016-04-02 15:14:58 +1
#socket #winsock #programowanie #cplusplus

Mam problem. Kompliluje kod serwera UDP pod VS2010 pojawia mi się błąd nr 10038

Socket operation on nonsocket. An operation was attempted on something that is not a socket. Either the socket handle parameter did not reference a valid socket, or for select, a member of an fd_set was not valid.

Z tego co widzę wszystko z socketami jest ok. Jednak nie działa. Pomoże ktoś?
MlodyInformatyk 2016-04-02 15:21:41 +0
Ok już znalazłem o co chodzi. Nie zainicjalizowałem socketa
MlodyInformatyk 2016-04-02 14:07:50 nsfw +2
#socket #winsock #programowanie #cplusplus


Piszę właśnie (w winsock c++) serwer oraz klienta UDP. korzystam z [strony](http://www.asawicki.info/Mirror/Beej_s%20Guide%20to%20Network%20Programming%20PL/bgnet.pdf ), którą mi tutaj kiedyś poleciliście.

Mógłby ktoś to przetłumaczyć na bardziej zrozumiały dla laika w sieciówce język? wolałbym uniknąć wchodzenia na tematy j---a, deskryptorów, chyba że na prawdę jest to konieczne.
Patrząc po kodach serwerów i klientów które dostałem od znajomych wniosek który mi się nasunął jest taki, że przy kliencie bindować nie będę, a przy serwerach tak. Czy to jest prawidłowy wniosek?
GotoFinal 2016-04-02 14:13:21 +1
pewnie coś przekręcę, ale:
bind - powoduje że inne sockety mogą się łączyć do twojego, powiedzmy że to stawia serwera.
connect - łączy się do jakiegoś serwera, który ma zbindowane jakiś adres, zazwyczaj się ten adres gdzieś ustala do którego się łączysz.

Więc mniej-więcej tak, bind dla serwera, connect dla clienta.

Ale ja piszę w javie, więc się pewnie nie znam :D Ja mam po prostu ServerSocket który binduje, i zwykły socket którym się łącze, i trochę ciekawiej ale dalej prosto pod netty.
rfree 2016-04-02 14:13:29 +0
@MlodyInformatyk: WinSocks jest dla podludzi, bo kod nie jest przenośny.

Dlaczego nie napiszesz tego normalnie w boost::asio?
pokaż komentarze (5)
NewGuy 2015-10-25 15:53:06 +2
#arduino #socket.io #ubuntu #javascript
Mam problem. Napisałem aplikację która wysyła mi po porcie liczbę "1" co sekundę. Gdy wpiszę w terminalu cat /dev/ttyUSB0 to widzę jak te jedynki mi wyskakują w nowej lini. Więc program jest ok. Napisałem taki program w JS:
``var serialport = require("serialport");
SerialPort = serialport.SerialPort;

var mySerial = new SerialPort("/dev/ttyUSB0", {
baudrate: 9600,
parser: serialport.parsers.readline("/n")
});
mySerial.on("open", function(){
console.log("Port otwarty.");
});
mySerial.on("data", function(data){
console.log(data);
});``
Wpisuję w terminalu node app.js i otrzymuję Port otwarty. Ale żadnych danych nie odczytuje. Co jest źle ?
M.....s 2015-10-25 16:00:07 +1
@NewGuy: zara poszukam w moich starych projektach
facefear 2015-10-25 16:01:19 +2
@NewGuy: U mnie coś takiego hula

var SerialPort = require("serialport").SerialPort
var serialPort = new SerialPort("COM4", {
baudrate: 57600
});

serialPort.on("open", function () {
console.log('open');
serialPort.on('data', function(data) {
console.log('data received: ' + data);
});
});

Edit: zmień port i baud
pokaż komentarze (7)
lycamob 2015-10-18 21:39:36 +1
#ssh #linux #tunnel #socket

mirki jest jakiś program do tunnelowania wszystkich połączeń ?
mam serwer w PL cloud (e24cloud.com)
Bitvise SSH Client i ten program

ustawiłem wszystko i działa player.pl przez przeglądarkę.
Ale zainstalowałem iplę i wywala, że zablokowane poza granice RP.
nie chcę instalować vpnów itd na serwerze, chcę to uruchomić na socket5.

Kiedyś korzystałem z programiku, który tunneluje wszystkie programy na windowsie. Ale nie pamiętam jaki :(
Miał takie fajne wykresiki zużycia łącza + logi odpalonych programów i porty.
kajelu 2015-10-18 21:40:52 +0
@lycamob: akurat ipla nawet w polsce mi sie wywala ostatnio. Sprobuj czegos innego
marionez 2015-10-18 21:52:25 +0
@lycamob: ssh -D port
pokaż komentarze (3)
CamelCase 2015-04-05 14:10:23 +1
Mirki, nie ogarniam gniazd BSD.

Załóżmy, że serwer (który ma obsługiwać potencjalnie dowolnie wielu klientów jednocześnie) wisi na funkcji accept. Przychodzi połączenie, accept zwraca deskryptor klienta i co dalej? Podejrzewam, że umieszczam deskryptor w jakimś kontenerze, wątek wraca na accept, a drugi wątek stara się wykonywać funkcje odczytu i zapisu na deskryptorach klientów, tylko jak to powinno wyglądać? Na przykład read i write są blokujące. Co jeżeli zawiesi mi się write, inni klienci czekają, a obsługiwany nie spieszy się z wykonaniem read i opróżnieniem bufora? Jest mi ktoś w stanie wytłumaczyć przepływ sterowania?

#programowanie #jezykc #cpp #bsd #socket
leoha 2015-04-05 14:13:15 +3
@CamelCase: man select, man poll, man epoll
andrut1291 2015-04-05 14:28:32 +1
miałem to na kursie z typkiem w ostatnim semestrze. Może Ci się przyda i znajdziesz przykład, który potrzebujesz. Jest tam coś o gniazdach, ale widzę że nie całość skryptu co nam dawał na papierze ;/
http://jedrzej.ulasiewicz.staff.iiar.pwr.wroc.pl/KomputeroweSystSter/lab/LabNeutrinoRTS-30.htm