WFM with 'g++ -o sock sock.cpp'. Your gcc/g++ is out of date, though I doubt that's the main problem. See <http://cygwin.com/problems.html> if you need to post again for help on this issue.
Thanks, Larry At 09:52 AM 1/31/2004, Graham Walsh you wrote: >Hiya, first time using cygwin.... I have a linker error when compiling a stock socket >app. All I use is standard calls to socket, bind etc. etc. > >All the symbols usually located in libsocket.so on unix are missing, i.e. bind, >socket, etc. etc. I am at a loss as to what to link against. If anybody knows the >compilation and link options I need it would help me out completely. I am assuming >that the standard cygwin release provides all the libs I need to do this type of unix >coding on my humble XP box. If I've missed anything, please let me know. I am using >GCC v3.2 on an XP machine with the latest cygwin installation. > > >my goal here is simply to write unix style code with gcc on my xp box. > > >Cheers, > > >GrahamO > > >#include <stdio.h> >#include <sys/types.h> >#include <sys/socket.h> >#include <netinet/in.h> >#include <netdb.h> >#include <unistd.h> >#include <string.h> >#include <arpa/inet.h> >#include <stdlib.h> >#define PORT 3550 /* Port that will be opened */ >#define BACKLOG 2 /* Number of allowed connections */ >extern "C" int close(int); >extern "C" void bzero(void *, size_t); >using namespace std; >main() >{ > int fd, fd2; /* file descriptors */ > struct sockaddr_in server; /* server's address information */ > struct sockaddr_in client; /* client's address information */ > int sin_size; > if ((fd=socket(AF_INET, SOCK_STREAM, 0)) == -1 ) > { /* calls socket() */ > printf("socket() error\n"); > exit(-1); > } > server.sin_family = AF_INET; > server.sin_port = htons(PORT); /* Remember htons() from "Conversions" section? =) > */ > server.sin_addr.s_addr = INADDR_ANY; /* INADDR_ANY puts your IP address > automatically */ >// bzero(&(server.sin_zero),8); /* zero the rest of the structure */ >// void *memset (void *ptr, int val, size_t len); > memset(&(server.sin_zero), 0, 8); > > if(bind(fd,(struct sockaddr*)&server,sizeof(struct sockaddr))==-1){ /* calls bind() > */ > printf("bind() error\n"); > exit(-1); > > } > if(listen(fd,BACKLOG) == -1){ /* calls listen() */ > printf("listen() error\n"); > exit(-1); > } >while(1){ > sin_size=sizeof(struct sockaddr_in); > if ((fd2 = accept(fd,(struct sockaddr *)&client,&sin_size))==-1){ /* calls accept() > */ > printf("accept() error\n"); > exit(-1); > } > > printf("You got a connection from %s\n",inet_ntoa(client.sin_addr) ); /* prints > client's IP */ > > send(fd2,"Welcome to my server.\n",22,0); /* send to the client welcome message */ > > close(fd2); /* close fd2 */ >} >} >/* <---- SOURCE CODE ENDS HERE ----> */ > >_________________________________________________________________ >Scope out the new MSN Plus Internet Software — optimizes dial-up to the max! >http://join.msn.com/?pgmarket=en-us&page=byoa/plus&ST=1 > > >-- >Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple >Problem reports: http://cygwin.com/problems.html >Documentation: http://cygwin.com/docs.html >FAQ: http://cygwin.com/faq/ -- Larry Hall http://www.rfk.com RFK Partners, Inc. (508) 893-9779 - RFK Office 838 Washington Street (508) 893-9889 - FAX Holliston, MA 01746 -- Unsubscribe info: http://cygwin.com/ml/#unsubscribe-simple Problem reports: http://cygwin.com/problems.html Documentation: http://cygwin.com/docs.html FAQ: http://cygwin.com/faq/