Velocity Reviews - Computer Hardware Reviews

Velocity Reviews > Newsgroups > Programming > C Programming > Problem using sockets

Reply
Thread Tools

Problem using sockets

 
 
Vlad Dogaru
Guest
Posts: n/a
 
      01-14-2007
Hello,

I am trying to write a simple program to teach myself sockets. The
following bit of code fails with:
"connect: Socket operation on non-socket". What am I missing?

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

int main(int argc, char **argv)
{
int s1, s2; /* socket descriptors */
extern int errno;
struct sockaddr_in sa1, sa2;
char aux[MAX_STR_LEN];
struct hostent *hp;

if (argc != 5) {
printf("Usage: %s <host1> <port1> <host2> <port2>\n", argv[0]);
return 0;
}

if ((hp=gethostbyname(argv[1])) == 0) {
perror("gethostbyname");
return errno;
}

bzero(&sa1, sizeof sa1);
sa1.sin_family = AF_INET;
sa1.sin_port = htons(atoi(argv[2]));
sa1.sin_addr.s_addr = ((struct in_addr *)(hp->h_addr))->s_addr;

if ((s1=socket(AF_INET, SOCK_STREAM, 0) == -1)) {
perror("socket");
return errno;
}

if (connect(s1, (void *) &sa1, sizeof (sa1)) == -1) {
perror("connect");
return errno;
}
printf("Socket 1 connected");

Also, having two sockets open, can I use select() to read from them?
Can someone please point me to an example of using select() with
sockets?

Thanks in advance,
Vlad

 
Reply With Quote
 
 
 
 
Keith Thompson
Guest
Posts: n/a
 
      01-14-2007
"Vlad Dogaru" <(E-Mail Removed)> writes:
> I am trying to write a simple program to teach myself sockets.

[...]

Standard C does not include support for sockets.
Try comp.unix.programmer.

--
Keith Thompson (The_Other_Keith) http://www.velocityreviews.com/forums/(E-Mail Removed) <http://www.ghoti.net/~kst>
San Diego Supercomputer Center <*> <http://users.sdsc.edu/~kst>
We must do something. This is something. Therefore, we must do this.
 
Reply With Quote
 
 
 
 
Dave Thompson
Guest
Posts: n/a
 
      01-29-2007
On 14 Jan 2007 01:50:30 -0800, "Vlad Dogaru" <(E-Mail Removed)> wrote:

> Hello,
>
> I am trying to write a simple program to teach myself sockets. The
> following bit of code fails with:
> "connect: Socket operation on non-socket". What am I missing?
>

The sockets part is offtopic but your problem is actually a C problem.

> if ((s1=socket(AF_INET, SOCK_STREAM, 0) == -1)) {


This compares the return value from socket(...) to -1 to choose
whether to assign 0 or possibly 1 to s1. Neither of those is a valid
sd (in your obviously Unixoid environment) and even if valid wouldn't
be correct i.e. the value you want later. You need to move one of
your parentheses: if ( (s1=socket(...)) == -1 ) { error }

- David.Thompson1 at worldnet.att.net
 
Reply With Quote
 
 
 
Reply

Thread Tools

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off
Trackbacks are On
Pingbacks are On
Refbacks are Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Problem in using sockets in vb.net xecutioner Software 0 11-11-2008 09:59 AM
Using the Command Pattern and Sockets? Ken Adams Java 3 12-09-2004 10:54 AM
File transfer using sockets Paul Morrison Java 3 10-19-2004 01:16 PM
how to communicate server/client using tcpip and /or sockets =?Utf-8?B?U3llZCBBdW4gQWxp?= ASP .Net 1 08-07-2004 08:27 AM
User Authentication using Sockets ! Nachhu Java 1 01-12-2004 04:57 PM



Advertisments