Leo2797 Posted December 1, 2019 Share Posted December 1, 2019 I'm trying to listen to a certain connection and wait for a packet that contains "C8420000", is there a faster way I could do this? am I using StringInStr in a correct way? does adding a huge buffer size make room for the amount of bytes it can read per single read or does it make it slower? is opening one connection for receive and one for send a good idea or can I use the same socket for receiving and sending (I'll be sending a packet after doing some work on the received data so I need a send socket) any tips would be appreciated, thanks. #include <Misc.au3> TCPStartup() $receive = TCPConnect("127.0.0.1", 16000) $send = TCPConnect("127.0.0.1", 16000) While 1 $data = TCPRecv($receive, 1000000, 1) if StringInStr($data, "C8420000", 2) Then ;do stuff with $data EndIf WEnd Link to comment Share on other sites More sharing options...
Moderators Melba23 Posted December 1, 2019 Moderators Share Posted December 1, 2019 Moved to the appropriate forum. Moderation Team Any of my own code posted anywhere on the forum is available for use by others without any restriction of any kind Open spoiler to see my UDFs: Spoiler ArrayMultiColSort ---- Sort arrays on multiple columnsChooseFileFolder ---- Single and multiple selections from specified path treeview listingDate_Time_Convert -- Easily convert date/time formats, including the language usedExtMsgBox --------- A highly customisable replacement for MsgBoxGUIExtender -------- Extend and retract multiple sections within a GUIGUIFrame ---------- Subdivide GUIs into many adjustable framesGUIListViewEx ------- Insert, delete, move, drag, sort, edit and colour ListView itemsGUITreeViewEx ------ Check/clear parent and child checkboxes in a TreeViewMarquee ----------- Scrolling tickertape GUIsNoFocusLines ------- Remove the dotted focus lines from buttons, sliders, radios and checkboxesNotify ------------- Small notifications on the edge of the displayScrollbars ----------Automatically sized scrollbars with a single commandStringSize ---------- Automatically size controls to fit textToast -------------- Small GUIs which pop out of the notification area Link to comment Share on other sites More sharing options...
Nine Posted December 1, 2019 Share Posted December 1, 2019 Impossible to answer you adequately without knowing all the technical issues you are facing. “They did not know it was impossible, so they did it” ― Mark Twain Spoiler Block all input without UAC Save/Retrieve Images to/from Text Monitor Management (VCP commands) Tool to search in text (au3) files Date Range Picker Virtual Desktop Manager Sudoku Game 2020 Overlapped Named Pipe IPC HotString 2.0 - Hot keys with string x64 Bitwise Operations Multi-keyboards HotKeySet Recursive Array Display Fast and simple WCD IPC Multiple Folders Selector Printer Manager GIF Animation (cached) Screen Scraping Multi-Threading Made Easy Link to comment Share on other sites More sharing options...
Leo2797 Posted December 2, 2019 Author Share Posted December 2, 2019 I'm not facing any, just trying to make it receive data as fast as possible so I was wondering if doing something like TCPRecv($receive, 1000000, 1) where the buffer size is large would make it quicker or am I actually slowing it down by doing so and should narrow it down to like 1024 maybe Link to comment Share on other sites More sharing options...
RTFC Posted December 2, 2019 Share Posted December 2, 2019 TCP MTU over ethernet is 1500 bytes incl. headers, leaving at worst 1460 bytes of payload per segment. Since it's a stream protocol, you need a buffer a few times larger than that to guarantee you don't get buffer overflow and related errors. Theoretical maximum is 64K -1, anything larger is pointless. I use a ~16K buffer myself to avoid any data loss. My Contributions and Wrappers Spoiler BitMaskSudokuSolver BuildPartitionTable CodeCrypter CodeScanner DigitalDisplay Eigen4AutoIt FAT Suite HighMem MetaCodeFileLibrary OSgrid Pool RdRand SecondDesktop SimulatedAnnealing Xbase I/O Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now