Chciałbym wziąć program, P
który odczytuje stdin
i zapisuje stdout
, ale podłącza go nc
lub cokolwiek innego, co czyta z określonego portu i wysyła do innego portu.
# The reading is easy, here P reads from port 50505
nc -l 50505 | P
Jak mogę uzyskać zwrot z portu 60606?
P
i oczekiwać odczytania wynikuP
z drugiego połączenia TCP? Dlaczego tag UDP?UDP
myślę, że chciałemports
, ale to nie było istniejące słowo kluczowe, więc pomyślałemTCP
i myślę, że dodałemUDP
odruchowo.Odpowiedzi:
Mam na myśli, że ktoś może otworzyć 2 połączenia TCP z twoim komputerem, jedno do portu 50505, a drugie do portu 60606, wysłać dane o pierwszym przeznaczonym do podania do P i oczekiwać odczytania wyniku P z drugiego połączenia TCP, to byłoby:
Lub z
socat
:Aby
P
wysłać dane wyjściowe z powrotem do tego samego połączenia:źródło
Nie potrzebujesz
nc
do pracy z portami.bash
może zrobić to sam:źródło
/dev/tcp
jest często wyłączony i nie można go używać do słuchania . Potrzebujesz,zsh
jeśli chcesz powłoki, która może tworzyć nasłuchiwane gniazda TCP.ztcp -l
do nasłuchiwania iztcp -a
akceptowania połączeń w gnieździe nasłuchującym).