stram socket


 
Thread Tools Search this Thread
Top Forums Programming stram socket
# 8  
Old 04-19-2007
I have modified both server and client code's and it should work now.

Just a basic model of server and client is provided

Will post the mistakes corrected in detail in the next post later !

server code

Code:
/** server code **/

#include <stdlib.h>
#include <stdio.h>
#include <sys/types.h>
#include <netinet/in.h>
#include <sys/socket.h>
#include <netdb.h>
#include <unistd.h>

#define portno  6789

void error(char*);

void error(char *msg)
{
    perror(msg);
    exit(1);
}

int main(int argc, char *argv[])
{
     int serversocket;
     int newsockfd;
     int clilen;
     char buffer[4096];
     struct sockaddr_in serv_addr, cli_addr;
     int n;

     if( (serversocket = socket(AF_INET, SOCK_STREAM, 0)) < 0 ) {
        error("ERROR opening socket");
     }

     bzero((char *) &serv_addr, sizeof(serv_addr));
     serv_addr.sin_family = AF_INET;
     serv_addr.sin_addr.s_addr = INADDR_ANY;
     serv_addr.sin_port = htons(portno);

     if ( bind(serversocket, (struct sockaddr *) &serv_addr, sizeof(serv_addr)) < 0 )
     {
       error("ERROR on binding");
     }

     if( (listen(serversocket,5)) == - 1 ) {
       perror("Unable to connect\n");
       close(serversocket);
       exit(1);
     }

    while (1) {
       clilen = sizeof(cli_addr);
       if( (newsockfd = accept(serversocket,(struct sockaddr *) &cli_addr, &clilen)) < 0 )
       {
         error("ERROR on accept");
       }

       strcpy(buffer, "something");
       n = write(newsockfd, buffer, strlen(buffer));
       if (n < 0)
       {
         error("ERROR writing to socket");
       }
       close(newsockfd);
     }
     return 0;
}

**************

client code
Code:
/** client code **/

#include <stdio.h>
#include <stdlib.h>
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <netdb.h>
#include <unistd.h>
#include <errno.h>
#include <string.h>

#define portno 6789 /* default port and host */
#define MAXDATASIZE 100 /* max number of bytes */

void error(char *msg)
{
perror(msg);
exit(0);
}

int main(int argc, char *argv[])
{
int serversocket, numbytes;
struct sockaddr_in serv_addr;
struct hostent *server;
char buffer[MAXDATASIZE];
int rc;

if( (serversocket = socket(AF_INET, SOCK_STREAM, 0)) < 0 ) {
perror("socket");
exit(1);
}

if( ( server = gethostbyname("hostname")) == NULL ) {
perror("gethostbyname");
exit(1);
}

bzero((char*) &serv_addr, sizeof(serv_addr));
serv_addr.sin_family = AF_INET;

bcopy((char*)server->h_addr, (char*)&serv_addr.sin_addr.s_addr, server->h_length);
serv_addr.sin_port = htons(portno);

if( (rc = connect(serversocket, (struct sockaddr*)&serv_addr, sizeof(serv_addr))) == -1 ) {
perror("connect");
exit(1);
}

if ((numbytes=recv(serversocket, buffer, MAXDATASIZE-1, 0)) == -1) {
perror("recv");
exit(1);
}

buffer[numbytes + 1] = '\0';
printf("Received: %s\n",buffer);

close(serversocket);
return 0;
}

# 9  
Old 04-19-2007
stream socket

hi all,
thanks for all your reply.i will try this and will let you know the result.
# 10  
Old 04-21-2007
stream socket

hi all,
the code is running.thanku so much for help.
# 11  
Old 04-26-2007
Quote:
/* no need to give comment for this headerif anyone doesn't know abt stdio.h he/she should not programming in C*/
This is really rude !

There is nothing wrong in giving enough comments !

It would help somebody who is looking into programming for the first time !
Smilie

I just dont want to extend this argument. Worth mentioning this thought Smilie

Last edited by matrixmadhan; 04-26-2007 at 01:49 PM..
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. IP Networking

Clarification - Setting socket options at the same time when socket is listening

I need clarification on whether it is okay to set socket options on a listening socket simultaneously when it is being used in an accept() call? Following is the scenario:- -- Task 1 - is executing in a loop - polling a listen socket, lets call it 'fd', (whose file descriptor is global)... (2 Replies)
Discussion started by: jake24
2 Replies

2. Programming

Error with socket operation on non-socket

Dear Experts, i am compiling my code in suse 4.1 which is compiling fine, but at runtime it is showing me for socket programming error no 88 as i searched in errno.h it is telling me socket operation on non socket, what is the meaning of this , how to deal with this error , please... (1 Reply)
Discussion started by: vin_pll
1 Replies

3. Programming

socket function to read a webpage (socket.h)

Why does this socket function only read the first 1440 chars of the stream. Why not the whole stream ? I checked it with gdm and valgrind and everything seems correct... #include <stdio.h> #include <stdlib.h> #include <sys/types.h> #include <sys/stat.h> #include <string.h> #include... (3 Replies)
Discussion started by: cyler
3 Replies

4. Programming

which socket should socket option on be set

Hi all, On the server side, one socket is used for listening, the others are used for communicating with the client. My question is: if i want to set option for socket, which socket should be set on? If either can be set, what's the different? Again, what's the different if set option... (1 Reply)
Discussion started by: blademan100
1 Replies

5. UNIX for Advanced & Expert Users

connect problem for sctp socket (ipv6 socket) - Runtime fail Invalid Arguments

Hi, I was porting ipv4 application to ipv6; i was done with TCP transports. Now i am facing problem with SCTp transport at runtime. To test SCTP transport I am using following server and client socket programs. Server program runs fine, but client program fails giving Invalid Arguments for... (0 Replies)
Discussion started by: chandrutiptur
0 Replies

6. IP Networking

IP Socket

Please need to setup a IP Socket on SCO Open Server 5.06 / 5.07 to a Linux machine. Al that I want to do is via a simple shell command open a tcpip address, port number, and send a call to a progam with a name of a file on the linux box. My programming language does not support socket... (1 Reply)
Discussion started by: comcaps
1 Replies

7. UNIX for Dummies Questions & Answers

C socket

I have been serching for a guide to unix C network programming everywhere but I have found only some tuorials, very useful but a little bit poors. My question is if exist a network domain all over the world where C socket is treated with examples. Programs i have looked into is hard to... (4 Replies)
Discussion started by: Davide71
4 Replies

8. 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

9. UNIX for Dummies Questions & Answers

socket

hi everybody ! i want create server/clients in c++ anyone can give me i little exemple for send a string ? or give me a good site for explain. thx (1 Reply)
Discussion started by: mercutio
1 Replies

10. IP Networking

socket

how to create a socket ? why to bind a socket? when we use a socket? (1 Reply)
Discussion started by: amin
1 Replies
Login or Register to Ask a Question