We read every piece of feedback, and take your input very seriously.
To see all available qualifiers, see our documentation.
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
This doesn't happen with socat app under Unix like systems.
If there is input of 4MB binary file generated from /dev/urandom and we try different ways to transfer this via STDIO
On an Ubuntu system this results in
$ cat input.dat > output-cat.dat $ cat input.dat | sed -n -b 'w output-sed.dat' $ cat input.dat | socat STDIO EXEC:"sed -n -b \'w output-socat-sed.dat\'" $ socat STDIO EXEC:"cat input.dat" > output-socat-cat.dat $ ls -l | grep .dat -rw-r--r-- 1 user user 4194304 Jan 23 16:48 input.dat -rw-r--r-- 1 user user 4194304 Jan 23 16:53 output-cat.dat -rw-r--r-- 1 user user 4194304 Jan 23 16:54 output-sed.dat -rw-r--r-- 1 user user 4194304 Jan 23 16:56 output-socat-cat.dat -rw-r--r-- 1 user user 4194304 Jan 23 16:55 output-socat-sed.dat $ sha256sum *.dat e49d87cb784ecb1bb0daf5e7878e10e72498c0acad118b80567e9a98a4ea4425 input.dat e49d87cb784ecb1bb0daf5e7878e10e72498c0acad118b80567e9a98a4ea4425 output-cat.dat e49d87cb784ecb1bb0daf5e7878e10e72498c0acad118b80567e9a98a4ea4425 output-sed.dat e49d87cb784ecb1bb0daf5e7878e10e72498c0acad118b80567e9a98a4ea4425 output-socat-cat.dat e49d87cb784ecb1bb0daf5e7878e10e72498c0acad118b80567e9a98a4ea4425 output-socat-sed.dat
All files are the same size and sha sums match.
On a Windows machine with winsocat and using msys2 tools
$ C:\\msys64\\usr\\bin\\cat.exe input.dat > output-cat.dat $ C:\\msys64\\usr\\bin\\cat.exe input.dat | C:\\msys64\\usr\\bin\\sed -n -b 'w output-sed.dat' $ C:\\msys64\\usr\\bin\\cat.exe input.dat | ./winsocat.exe STDIO EXEC:"C:\\msys64\\usr\\bin\\sed -n -b 'w output-winsocat-sed.dat'" $ ./winsocat.exe STDIO EXEC:"C:\\msys64\\usr\\bin\\cat.exe input.dat" > output-winsocat-cat.dat $ ls -l | grep .dat -rw-r--r-- 1 user user 4194304 Jan 23 11:39 input.dat -rw-r--r-- 1 user user 4194304 Jan 23 17:08 output-cat.dat -rw-r--r-- 1 user user 4194304 Jan 23 17:08 output-sed.dat -rw-r--r-- 1 user user 4194304 Jan 23 17:13 output-winsocat-cat.dat -rw-r--r-- 1 user user 4128768 Jan 23 17:10 output-winsocat-sed.dat $ sha256sum.exe *.dat e49d87cb784ecb1bb0daf5e7878e10e72498c0acad118b80567e9a98a4ea4425 *input.dat e49d87cb784ecb1bb0daf5e7878e10e72498c0acad118b80567e9a98a4ea4425 *output-cat.dat e49d87cb784ecb1bb0daf5e7878e10e72498c0acad118b80567e9a98a4ea4425 *output-sed.dat e49d87cb784ecb1bb0daf5e7878e10e72498c0acad118b80567e9a98a4ea4425 *output-winsocat-cat.dat 863aa4747b460e1f65849c80342a3f65728f29a859c2193e797e1873066e3690 *output-winsocat-sed.dat
When we pass STDIO to winsocat the file is shorter. We can prove that it is not in between corruption, by cutting the same size from input.dat with dd
$ dd if=/c/Temp/input.dat of=/c/Temp/input-short.dat bs=4128768 count=1 $ sha256sum.exe *.dat | sort 863aa4747b460e1f65849c80342a3f65728f29a859c2193e797e1873066e3690 *input-short.dat 863aa4747b460e1f65849c80342a3f65728f29a859c2193e797e1873066e3690 *output-winsocat-sed.dat e49d87cb784ecb1bb0daf5e7878e10e72498c0acad118b80567e9a98a4ea4425 *input.dat e49d87cb784ecb1bb0daf5e7878e10e72498c0acad118b80567e9a98a4ea4425 *output-cat.dat e49d87cb784ecb1bb0daf5e7878e10e72498c0acad118b80567e9a98a4ea4425 *output-sed.dat e49d87cb784ecb1bb0daf5e7878e10e72498c0acad118b80567e9a98a4ea4425 *output-winsocat-cat.dat
The text was updated successfully, but these errors were encountered:
No branches or pull requests
This doesn't happen with socat app under Unix like systems.
If there is input of 4MB binary file generated from /dev/urandom and we try different ways to transfer this via STDIO
On an Ubuntu system this results in
All files are the same size and sha sums match.
On a Windows machine with winsocat and using msys2 tools
When we pass STDIO to winsocat the file is shorter. We can prove that it is not in between corruption, by cutting the same size from input.dat with dd
The text was updated successfully, but these errors were encountered: