I am creating a multithreaded socket program that needs to send 2 sets of data to the server periodically. The client needs to send GPS information every 3 seconds and polarity information every 4 seconds. My idea on implementing this was to simply create a new thread, make a infinite loop, send() the GPS information, sleep() for 1 second, send() the polarity information, and then sleep() for 2 seconds. Would this be a sufficient way of going about this? Sorry, I'm new to socket programming so I don't know of any alternative methods.
Sending data periodically from client to server in C
1.7k Views Asked by marcusc At
1
There are 1 best solutions below
Related Questions in C
- How to call a C language function from x86 assembly code?
- What does: "char *argv[]" mean?
- User input sanitization program, which takes a specific amount of arguments and passes the execution to a bash script
- How to crop a BMP image in half using C
- How can I get the difference in minutes between two dates and hours?
- Why will this code compile although it defines two variables with the same name?
- Compiling eBPF program in Docker fails due to missing '__u64' type
- Why can't I use the file pointer after the first read attempt fails?
- #include Header files in C with definition too
- OpenCV2 on CLion
- What is causing the store latency in this program?
- How to refer to the filepath of test data in test sourcecode?
- 9 Digit Addresses in Hexadecimal System in MacOS
- My server TCP doesn't receive messages from the client in C
- Printing the characters obtained from the array s using printf?
Related Questions in SOCKETS
- Node.js Server + Socket.IO + Android Mobile Applicatoin XHR Polling Error...?
- My server TCP doesn't receive messages from the client in C
- how is strncpy able to copy from source to empty destination?
- Python Multicast packet receiver stops receiving multicast packets when computer is connected to WiFi
- Python Client-Server Communication with Protocol
- Reversed TLS re-connection issue
- Android 13 & 14 seem to close WebSocket connection, if i put app in background, after ~20s
- Java SocketException: Connection reset,. What is the cause?
- Multipart/form-data with chunked data transfer (ICAP protocol)
- View Socket View
- Client connection timeout during Android & Windows PC communication via sockets
- Browser connect to raw sockets even possible?
- Protocol 43200 after unpacking received data
- Unity SocketIo using Best http2 plugin want to use in webgl
- How does pre-allocating a pool of SocketAsyncEventArgs objects upfront improve the performance of a server application in c#
Related Questions in SLEEP
- Waiting for several hours before resuming execution
- How acurate is a Golang time.Sleep() on a Google Cloud Pod when the amount is subseconds?
- Top level sleep function for Javascript
- Why is the output of an async function printed before that function is called?
- ESP32 C3 not consistently Waking up from Deep Sleep
- Call Sleep("time") in VBA
- How can I make a program run for a given amount of time on the CPU in C++?
- ATTiny814 not going into powerdown sleep
- Vary time between tasks according to wave function
- is there a better option to work with other than time.sleep() in tkinter GUI
- Python printing after a while loop, involving sleep statements
- C++ std::this_thread::sleep_for() sleeping longer than expected for small durations
- Pause thread and re run it
- UDP Streaming in Python: Unexplained Delays Beyond Sleep Time
- why does it say that "sleep(1)" is undefined?
Related Questions in SERVER
- Sending data from C++ server to React.js client
- Deploy Flutter and Laravel php mobile app on the host server
- Protect Server Actions with Next Auth in Next JS 14
- Cannot interact with netcat server over distance
- Facing fatal errors while running "yum update" command on CentOS 7/Cloudlinux 7
- Is there any way to set a printer as default according with Active Directory Policy Security Group and PC hostname?
- How to run GRPC and REST server on same port in Go?
- Share files from the server without data or internet usage
- Django Not Sending Tasks to Celery in Production
- Install Postfix Mail Server
- Is it viable proxying all my mobile apps requests, to some kind knowing that a request is coming from a secure source
- How does a server handle multiple requests, and how does is know where to send which response?
- Trying to launch batch file from powershell, and immediately closes
- Apache: How can I redirect to a subfolder with a URL param but serve required content via the main URL?
- Developing on a remote server an app symfony
Related Questions in PERIOD
- List Division in Period Folding
- Validate pandas.Period with Pandera schema
- The average results are calculated differently by the same average measure in the DAX for different time periods
- How to migrate Joda time Period API to Java time (java 8)?
- Excel: Proportional monthly distribution of sample values over a time period spanning different months
- How to split datetime period data into monthyear based on unique values in a column in R
- Finding the period-over-period difference across entire dataset
- Line chart tooltip over all periods
- CPU utilization by module for a given period
- Extract the overlaps of time intervals for the calculation of availabilities
- Period finding in Shor's Algorithm
- Create a daily freq Period / PeriodIndex object in a pandas dataframe for a "broken" year
- Creating Pandas Period for the current quarter hour
- How to change the view of a dataframe filled with numpy array to better describe a period
- woocommerce subscritpions : enable early renewal
Trending Questions
- UIImageView Frame Doesn't Reflect Constraints
- Is it possible to use adb commands to click on a view by finding its ID?
- How to create a new web character symbol recognizable by html/javascript?
- Why isn't my CSS3 animation smooth in Google Chrome (but very smooth on other browsers)?
- Heap Gives Page Fault
- Connect ffmpeg to Visual Studio 2008
- Both Object- and ValueAnimator jumps when Duration is set above API LvL 24
- How to avoid default initialization of objects in std::vector?
- second argument of the command line arguments in a format other than char** argv or char* argv[]
- How to improve efficiency of algorithm which generates next lexicographic permutation?
- Navigating to the another actvity app getting crash in android
- How to read the particular message format in android and store in sqlite database?
- Resetting inventory status after order is cancelled
- Efficiently compute powers of X in SSE/AVX
- Insert into an external database using ajax and php : POST 500 (Internal Server Error)
Popular # Hahtags
Popular Questions
- How do I undo the most recent local commits in Git?
- How can I remove a specific item from an array in JavaScript?
- How do I delete a Git branch locally and remotely?
- Find all files containing a specific text (string) on Linux?
- How do I revert a Git repository to a previous commit?
- How do I create an HTML button that acts like a link?
- How do I check out a remote Git branch?
- How do I force "git pull" to overwrite local files?
- How do I list all files of a directory?
- How to check whether a string contains a substring in JavaScript?
- How do I redirect to another webpage?
- How can I iterate over rows in a Pandas DataFrame?
- How do I convert a String to an int in Java?
- Does Python have a string 'contains' substring method?
- How do I check if a string contains a specific word?
Your proposed scheme is:
Over a period of 12 seconds, that leads to:
This sends the GPS information 4 times (correct) and the polarity 4 times, and every 3 seconds, not 3 times and every 4 seconds as the specification requires. The desired sequence might be:
Note that in some second, both GPS and polarity must be sent.
You can achieve this in either of two ways. Assuming you need to use threads at all, use two threads, one on a three second wait, one on a four second wait. Coordinate access to the socket with a mutex so that on multiples of 12 seconds, you still get sane behaviour.
However, you could do it all with a single-threaded process that waits appropriate intervals:
You can also sleep for multiple seconds by altering the code at the end of the loop to determine which send comes next and sleeping for the appropriate amount of time and incrementing
t_curby the appropriate amount of time (rather than just using 1 second all the time).If you need to avoid drift (because the code above assumes that the send process is instantaneous and it isn't), then you have to use sub-second sleeps and trap the time at the start of the loop and adjust the sleep interval to allow for the time taken to do the sending.