sockets under ESIX Rev. D - beginner's question
Jan Hinnerk Haul
pirx at wedel.hanse.de
Tue Nov 27 07:43:14 AEST 1990
I'm at the end of my wits, so methinks I should ask the gurus...
Just beginning to play with sockets (wanting to build a multi-machine
chat program), I receive core dumps in listen().
The code below is not mine; I changed only some #include directives
(ESIX has the network stuff in /usr/include/lan) and inserted one or
two printfs. The main() is mine, of course.
The code belows cores in listen(). Here it goes:
/* SOCKET.C
**
** Written by Steven Grimm (koreth at ebay.sun.com) on 11-26-87
*/
/*
** some #include changed foe ESIX Rev D. JHH
*/
#include <sys/types.h>
#include <sys/time.h>
#include <lan/net_types.h>
#include <lan/socket.h>
#include <lan/in.h>
#include <lan/inet.h>
#include <lan/netdb.h>
#include <stdio.h>
#include <ctype.h>
extern int errno;
int serversock(port)
int port;
{
int sock, x;
struct sockaddr_in server;
sock = socket(AF_INET, SOCK_STREAM, 0);
if (sock < 0)
return -errno;
memset(&server, 0, sizeof(server));
server.sin_family = (short) AF_INET;
server.sin_addr.s_addr = (ulong) INADDR_ANY;
server.sin_port = (ushort) htons(port);
x = bind(sock, &server, sizeof(server));
if (x < 0)
{
close(sock);
return -errno;
}
printf("socket created: port= %x \n", server.sin_port);
listen(sock, 5); /* CODE DUMPS HERE IN listen(3,5) */
return sock;
}
main()
{
int Socke;
char puffer[1024];
Socke=serversock(0x1234);
if (Socke<0) exit (1);
exit(0);
}
sdb points out:
Script started on Mon Nov 26 20:25:55 1990
$ cc -g -o sockquestion sockquestion.c -lbsd -lnet -lnsl_s
$ sockquestion
socket created: port= 3412
Bus error - core dumped
$ sdb sockquestion
sock_strm.c: No such file or directory
0x43a in listen:No lines in file
*t
listen(3,5) [sock_strm.c]
serversock(port=4660) [sockquestion.c:48]
main(1,0x7ffffe94,0x7ffffe9c) [sockquestion.c:60]
*q
$
script done on Mon Nov 26 20:28:59 1990
Now I'm quite lost. The code of socket.c is reported to work, and a
friend of mine with some socket knowledge (he hacked unix-domain sockets
into the xenix/286 kernel :-) does not se an error in the above code.
Oh well, it's ESIX SysV/386 Rev. D, 386, 8MB RAM, all network daemons up
and running (besides sendmail - smail 3.1 suffices for my needs), a
3C503 ethernet board installed (but nothing connected to it) and recocnized
by the kernel.
So what's going on here?
Any help would be appreciated - but please do not send me long mails, I
have to pay for them :-(
Best regards
Jan
-->
Jan Hinnerk Haul Hinter jedem guten Paradoxon steckt ein Kreter -
+49 4103 15427 voice und wenn er noch so kurze Beine hat. DRH
More information about the Comp.unix.programmer
mailing list