Sponsored Content
Special Forums IP Networking A Basic example of socket programming in C Post 302999282 by Corona688 on Friday 16th of June 2017 11:47:22 AM
Old 06-16-2017
Here's code which reads files in order when given as commandline arguments:

Code:
#include <stdio.h>

char line[4096];
char **files=NULL;
int filenum=0;
FILE *file=NULL;

// Close current file if any, open next from files[]
FILE *next_file() {
        if(file)
        {
                fclose(file);
                file=NULL;
        }

        if(files[filenum] == NULL) return(file=NULL); // out of files
        return(file=fopen(files[filenum++], "r"));
}

char *next_line(void) {
        // Keep trying to get a line until we get a line or run out of files
        while(1)
        {
                // If something is open, try and read it.
                // If we read it, return the line.
                if(file && fgets(line, 4096, file)) return(line);

                // If we're out of files, return error immediately.
                if(files[filenum] == NULL) return(NULL); // out of files

                // Close current and open next file
                next_file(files);
        }

        return(line);
}

void main(int argc, char *argv[]) {
        // get list of files from argv.
        // argv is organized like { "programname", "arg1", "arg2", "arg3", NULL }
        files=argv;
        filenum=1;      // valid arguments in argv[] start at 1

        while(next_line())
        {
                fputs(line, stdout);
                sleep(3);
        }
}

Being able to call next_line repeatedly without worrying about which file is open should make it easier.
This User Gave Thanks to Corona688 For This Post:
 

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
XtOpenDisplay() 														   XtOpenDisplay()

Name
  XtOpenDisplay - open, initialize, and add a display to an application context.

Synopsis
  Display *XtOpenDisplay(app_context, display_name, application_name, application_class, options, num_options, argc, argv)
	 XtAppContext app_context;
	 String display_name;
	 String application_name;
	 String application_class;
	 XrmOptionDescRec *options;
	 Cardinal num_options;
	 int *argc;	    /* was Cardinal * in Release 4 */
	 String *argv;

Inputs
  app_context
	    Specifies the application context.

  display_name
	    Specifies the name of the display to be opened and initialized, or NULL.

  application_name
	    Specifies the name of the application instance, or NULL.

  application_class
	    Specifies the class name of this application, which is usually the generic name for all instances of this application.

  options   Specifies how to parse the command line for any application-specific resources.

  num_options
	    Specifies the number of entries in the options array.

  argc	    Specifies a pointer to the number of command line parameters.  In Release 4 and previously, this argument was of type Cardinal *.
	    In Release 5 it is an int *.

  argv	    Specifies the command line parameters.

Outputs
  argc	    Returns the number of command line arguments remaining after the command line is parsed.

  argv	    Returns a modified command line containing only the application name and any arguments that were not recognized  as  standard  Xt
	    options or options specified in options.

Returns
  A pointer to the opened and initialized Display structure.

Description
  XtOpenDisplay()  opens  and initializes a display, and adds it to the specified application context.	Note that a display can be in at most
  one application context.

  XtOpenDisplay() calls XOpenDisplay() with the name of the display to open.  If display_name is NULL, XtOpenDisplay() uses the current value
  of the -display option specified in argv or if no display is specified in argv, it uses the user's default display (on POSIX-based systems,
  this is the value of the DISPLAY environment variable).

  If the display is successfully opened, XtOpenDisplay() parses the command line, builds the resource database	and  does  other  per-display
  initialization  by  calling XtDisplayInitialize() and passing it the application context, the opened display, the application name, and the
  remaining arguments.	The application name is the value of the -name option if it is specified in  argv,  or	the  value  of	the  applica-
  tion_name  argument, if it is non-NULL, or the value of the RESOURCE_NAME environment variable if it is set, or the name used to invoke the
  program.  On implementations that conform to ANSI-C Hosted Environment support, this is argv[0] less any directory  and  file  type  compo-
  nents;  that	is,  the final component of argv[0], if specified.  If argv[0] does not exist or is the empty string, the application name is
  "main".  See XtDisplayInitialize() and XtAppInitialize() for more information on initializing the display.  In  particular,  see  XtAppIni-
  tialize() for an explanation of how to initialize and array of XrmOptionDescRec in order to specify command line options to be parsed.

  XtOpenDisplay() returns the newly opened display or NULL if it failed.

Usage
  Most	applications  open only one display.  For these applications, it is easiest to simply call XtAppInitialize() which will automatically
  open and initialize a display.  Applications that want to use additional displays will usually open and  initialize  them  with  XtOpenDis-
  play().   If	a  display is already open, it can be initialized and added to an application context, thereby making it known to the Intrin-
  sics, by calling XtDisplayInitialize().

  In Release 4, the argc argument is of type Cardinal *, and in Release 5, this argument is of type int *.  This is a  minor  incompatibility
  that may result warnings from ANSI-C compilers when porting from one release to another.

  After  XtDisplayInitialize()	has  been called, argc and argv contain only those arguments that were not in the standard option table or in
  the table specified by the options argument.	If the modified argc is not zero, most applications simply print out the modified argv	along
  with a message listing the allowable options.

Structures
  The XrmOptionDescRec structure is as follows.  See XtAppInitialize() for information on how it is used.

     typedef enum {
			/* Value is ... */
	 XrmoptionNoArg,/* specified in OptionDescRec.value */
	 XrmoptionIsArg,/* the option string itself */
	 XrmoptionStickyArg,/* characters immediately following option */
	 XrmoptionSepArg,/* next argument in argv */
	 XrmoptionResArg,/* next argument is input to XrmPutLineResource */
			/* Ignore this option and ... */
	 XrmoptionSkipArg,/* the next argument in argv */
	 XrmoptionSkipNArgs,/* Ignore this option and ... */
			/* the next value arguments in argv */
	 XrmoptionSkipLine/* the rest of argv */
     } XrmOptionKind;
     typedef struct {
	 char *option;	/* Option name in argv */
	 char *specifier;/* Resource name (without application name) */
	 XrmOptionKind argKind;/* Which style of option it is */
	 caddr_t value; /* Value to provide if XrmoptionNoArg */
     } XrmOptionDescRec, *XrmOptionDescList;

See Also
  XtAppInitialize(1), XtDisplayInitialize(1).

Xt - Application Contexts													   XtOpenDisplay()
All times are GMT -4. The time now is 05:31 PM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy