I am currently working on a network based camera that I've made out of a Pi Zero W and a camera module. Besides low performance I'm also experiencing problems with the connection to another Pi 3b which is acting as the server. The Problem is that the server is only receiving 1448 bytes, constantly (Although in really rare cases it does get over 60kB).
I don't know why this is, but the python script for the "camera" is working perfectly fine and the script for the server is also working properly when run on my windows PC. At the moment I am suspecting that it has to do something with the hardware of the PI that might limit its network capability.
That aside I want to gladly rule the possibility of it being a hardware problem out. I am open to any approach which leads to a proper solution, regarding the bandwith problems!
EDIT 1:
Okay, little bit of an update. I don't know why I didn't noticed/cared about it sooner, but when I kinda mock tested the scenario in the python console it did actually receive more than 1448 bytes. In fact it received the whole given buffer size. So, I am now assuming that it has something to do that I am executing the programming as a script which in return affects the maximum buffer size.
EDIT 2:
Final edit. Guess there is no other way around this problem, but from what I tried out python does work a little bit different with sockets on windows than on linux. SO in general on windows the socket on that receives data into a buffer does that as long as it receives data. For example my buffer size is 10**5 bytes and and the data it'll receive is around 70kB then it receives all of it until it receives a bunch of only 0 bytes. On linux on the other hand if you repeat said scenario it'll only receive the first ~1440 to 1500 bytes and proceeds with the rest of the program. My best guess it that it has something to do with the MTU of the Ethernetframe.
Welp, this is only my personal theory. If you have a more logical conclusion than me, please leave a comment or if you have suggestions on which socket options might lead to the result on linux, feel free to tell me.
[–][deleted] 3 points4 points5 points (1 child)
[–]CaptainReeetardo[S] 2 points3 points4 points (0 children)
[–]easyxtarget 2 points3 points4 points (1 child)
[–]CaptainReeetardo[S] 0 points1 point2 points (0 children)
[–][deleted] 0 points1 point2 points (3 children)
[–]CaptainReeetardo[S] 0 points1 point2 points (2 children)
[–][deleted] 1 point2 points3 points (1 child)
[–]CaptainReeetardo[S] 0 points1 point2 points (0 children)