Sponsored Content
Special Forums IP Networking A Basic example of socket programming in C Post 302999240 by yifangt on Thursday 15th of June 2017 05:30:09 PM
Old 06-15-2017
A Basic example of socket programming in C

Hello,
I have a question about socket programming
The question was a homework of this university of past (2011?) course.
The server is simulating a sensor that provides readings of temperature, light and humidity (temp.dat, light.dat, humid.dat) each with single column of number, one per row.
Code:
temp.dat:
60
59
58
57
......
light.dat:
40
50
20
30
......
humid.dat:
1
2
3
4
......

The server will open each file, read in all sensor values, and serve every request from the client. If a client requests temperature, the server will return a certain temperature sample from temp.dat according to the time of the connection. Starting from the first value of temp.dat when a connection is established, every second the server should return the next value in temp.dat upon request. If EOF is reached, the server should wraps around and start from the beginning of the file again. Display readings to the screen:
Code:
Connected to server!
Data returned by the server:
TEMPERATURE = 60 HUMIDITY = 40 LIGHT = 1
Data returned by the server:
TEMPERATURE = 59 HUMIDITY = 50 LIGHT = 2
Data returned by the server:
TEMPERATURE = 58 HUMIDITY = 20 LIGHT = 3
......  ......  ......

I have attached the code in C for server and client parts, but I am quite obscure about reading the 3 files in the server side and display in the client side by request.
This is NOT my homework for any class, but for self study to understand basic server-client communication of socket programming in C.

Any suggestion is greatly appreciated and pseudo code is fine.

Thanks a lot!
 

10 More Discussions You Might Find Interesting

1. Programming

Socket Programming

Dear Reader, Is there any way to check up socket status other than 'netstatus ' Thanks in advance, (1 Reply)
Discussion started by: joseph_shibu
1 Replies

2. Programming

Socket Programming socket

Hello, I actually try to make client-server program. I'm using SCO OpenServer Release 5.0.0 and when I try to compile my code (by TELNET) I've got this error : I'm just using this simple code : and I get the same error if I use : If someone can help me, Thanks (2 Replies)
Discussion started by: soshell
2 Replies

3. Programming

Socket Programming

Hi , I'm facing the following problem in socket programming. My structure is struct { int i; char *str; }samp; I'm creating the pointer to this structure and assigning the value to the structure members and send via the socket to the another process. The receiver process when... (7 Replies)
Discussion started by: arunviswanath
7 Replies

4. IP Networking

socket programming

Hello Everyone Iam working on tcp/ip programming.with some time interval server has to send data.client has to close the connection and to open the connection between the time interval.this is the scenario when iam closing the connection in client side the connection terminates.how to... (1 Reply)
Discussion started by: sureshvaikuntam
1 Replies

5. Programming

Socket programming in C

Hi, I wanted to write a socket program in C, where I always want my socket connected to the server. i.e i shouldn't get disconnected once i get the response back from the server. I want to work in the connected mode, instead of disconnect and connect. Can somebody please kindly provide me a... (3 Replies)
Discussion started by: sudharma
3 Replies

6. Programming

basic socket programming

Hello experts, four machines need to communicate with each other. How can I start the socket programming. Can you please explain me more elaborated way. Thank you for your time and effort in advance (4 Replies)
Discussion started by: radhakuna
4 Replies

7. Programming

Help with socket programming in C

hi guys i got this code trying to make connection between the server and multi clients but when i do ./server i got message server waiting then when i run ./client it says client 1 nosuch file i dont know whats that should i use any argument plz help how to compile and run and whats the expected... (1 Reply)
Discussion started by: kedah160
1 Replies

8. UNIX for Dummies Questions & Answers

hi i need help with socket programming

in socket programming how can i : Create for example 3 blank files, namely: server, client, network •Server: act as servers/provider, will receive all requests from different client •Client: requesters •Network: middle-layer of communication between server & client any tips or... (6 Replies)
Discussion started by: kedah160
6 Replies

9. Programming

help with socket programming in c

i'm doing a simple program in socket programming on c i have server that can handle 2clients in a single machine i'm running ubuntu linux so i got it work but the probelm when clients send a message the server will echo it but i cant distinguish which client send the message client 1 or client... (7 Replies)
Discussion started by: kedah160
7 Replies

10. Ubuntu

Socket Programming

HI Can anyone provide me with codes for file transfer server to client or vice versa? Also please explain how to compile those programs in ubuntu terminal as i am totally new to socket programming. Thanks (1 Reply)
Discussion started by: mayhemtrigger
1 Replies
MAKESMTPACCESS, MAKE(8) 				      Double Precision, Inc.					   MAKESMTPACCESS, MAKE(8)

NAME
makesmtpaccess - Build ESMTP server access file SYNOPSIS
makesmtpaccess makesmtpaccess-msa DESCRIPTION
makesmtpaccess rebuilds the contents of the /etc/courier/smtpaccess.dat database from the contents of the files in the /etc/courier/smtpaccess directory. When the esmtpd script starts couriertcpd, the script specifies /etc/courier/smtpaccess.dat file to control access to the Courier mail server's ESMTP daemon. The makesmtpaccess script must be run before any changes in the /etc/courier/smtpaccess directory take effect. The couriertcpd(8)[1] manual page describes the general format of the access file. The default Courier mail server configuration uses the same access file, /etc/courier/smtpaccess.dat for both the regular ESMTP server, and the message submission server on port 587 (RFC 2476[2]). It is possible to use different access files. To do so, create a different access file, edit /etc/courier/esmtpd-msa, and set ACCESSFILE to the filename of the access file directory (the directory containing the plain text files, not the .dat file). Then, use makesmtpaccess-msa instead of makesmtpaccess to build the .dat file. The smtpaccess configuration file The couriertcpd(8)[1] manual page describes the generic format of the access file. The access file specifies what should be done with connections from defined IP address ranges. The basic choices are to accept or reject the connection. Also, the generic format of the access file allows arbitrary environment variables to be set based on the connection's remote IP address. The Courier mail server's ESMTPD server understands the following environment variables, which may be set in the access file: BLOCK If this variable is set to a non-empty value, all mail will be rejected for this connection. The contents of the environment variable will be used as the error message. This is not the same as the couriertcpd access file setting that immediately drops the connection. The incoming connection is accepted, but every message will be rejected. FAXRELAYCLIENT Allow the client to send faxes via the courierfax(8)[3] module. Note When ESMTP authentication is enabled, a successful authentication automatically sets FAXRELAYCLIENT. RELAYCLIENT Allow the client to relay mail. Note When ESMTP authentication is enabled, a successful authentication automatically sets RELAYCLIENT. The following options are typically set globally in the esmtpd configuration file, but may be overriden in the smtpaccess configuration file: BOFHCHECKDNS Do not check the return address's domain in DNS if this environment variable is set to 0. The default value of BOFHCHECKDNS is 1. Note Turning off the DNS check disables a number of options in the bofh configuration file. See courier(8)[4] for more information. BOFHCHECKHELO Set this variable to 1 to check the hostname argument to the ESMTP HELO/EHLO command, as follows: o A hostname that's actually an IP address, and is the same as the connecting ESMTP client's IP address, is valid. o Otherwise hostname should be a valid DNS name with MX and/or A records, with at least one record matching the connecting ESMTP client's IP address. o An ESMTP client with relaying privileges (either due to RELAYCLIENT explicitly set, or if it succesfully authenticates) may use anything for an EHLO/HELO. The EHLO/HELO argument coming from an authenticated/relaying client is not checked. BOFHNOEXPN Disable the EXPN command if this environment variable is set to 1. BOFHNOVRFY Disable the VRFY command if this environment variable is set to 1. Other useful environment variables are listed in the submit(8)[5] manual page. SEE ALSO
esmtpd(8)[6], couriertcpd(8)[1], submit(8)[5]. AUTHOR
Sam Varshavchik Author NOTES
1. couriertcpd(8) [set $man.base.url.for.relative.links]/couriertcpd.html 2. RFC 2476 http://www.rfc-editor.org/rfc/rfc2476.txt 3. courierfax(8) [set $man.base.url.for.relative.links]/courierfax.html 4. courier(8) [set $man.base.url.for.relative.links]/courier.html 5. submit(8) [set $man.base.url.for.relative.links]/submit.html 6. esmtpd(8) [set $man.base.url.for.relative.links]/esmtpd.html Courier Mail Server 08/30/2011 MAKESMTPACCESS, MAKE(8)
All times are GMT -4. The time now is 03:49 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy