home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Phoenix Rising BBS
/
phoenixrising.zip
/
phoenixrising
/
unix
/
sock.arj
/
SOCK.C
next >
Wrap
C/C++ Source or Header
|
1993-05-13
|
1KB
|
60 lines
#include <sys/types.h>
#include <sys/socket.h>
#include <netinet/in.h>
#include <stdio.h>
#ifndef PORT
#define PORT 3012
#endif PORT
get_connect()
{
int s,s2,len;
struct sockaddr_in addr,remote;
s=socket(AF_INET,SOCK_STREAM,0);
if(s<0) {
perror("socket");
return(-1);
}
addr.sin_addr.s_addr = INADDR_ANY;
addr.sin_family = AF_INET;
addr.sin_port = htons(PORT);
bzero(&remote,sizeof(remote));
if(bind(s,&addr,sizeof(addr))<0) {
perror("bind");
return(-1);
}
if(listen(s,1)<0) {
perror("listen");
return(-1);
}
len = sizeof(remote);
s2=accept(s,&remote,&len);
close(s);
if(s2>=0)
fprintf(stderr,"Connect from %s port %d\n",
inet_ntoa(remote.sin_addr),remote.sin_port);
else perror("accept");
return(s2);
}
main()
{
char buf[2];
int s;
s=get_connect();
if(s<0) {
fprintf(stderr,"Couldnt get a connection\n");
exit(-1);
}
while(read(s,buf,1)>0) {
if(*buf=='\0') return;
write(1,buf,1);
}
}