//---------------------------------------------------------------------------
#pragma hdrstop
#include <stdio.h>
#include <winsock2.h>
#define TRUE 1
//---------------------------------------------------------------------------
#pragma argsused
int main(int argc, char* argv[])
{
int sock,length;
struct sockaddr_in server;
struct sockaddr tcpaddr;
int msgsock;
char buf[1024];
int rval,len;
//initialization socket
WSADATA wsaData;
WSAStartup(MAKEWORD(2,0),&wsaData);
//create new socket
sock=socket(AF_INET,SOCK_STREAM,0);
if(sock<0)
{
perror("opening stream socket");
printf("sock=%d\n",sock);
getch();
exit(1);
}
//bind the socket
server.sin_family=AF_INET;
server.sin_addr.S_un.S_addr=inet_addr("172.17.26.69");
server.sin_port=htons(5000);//INADDR_ANY;
if(bind(sock,(struct sockaddr *)&server,sizeof(server))<0)
{
perror("binding stream socket");
printf("lasterror: %d\n",WSAGetLastError());
getch();
exit(1);
}
length=sizeof(server);
if(getsockname(sock,(struct sockaddr *)&server,&length)<0)
{
perror("getting socket name");
getch();
exit(1);
}
printf("socket port # %d\n",ntohs(server.sin_port));
//listen socket
listen(sock,5);
len=sizeof(struct sockaddr);
do
{
printf("gogo");
msgsock=accept(sock,(struct sockaddr *)&tcpaddr,(int *)&len);
printf("msgsock=%d\n",msgsock);
if(msgsock==-1)
perror("accept");
else do
{
memset(buf,0,sizeof(buf));
if((rval=recv(msgsock,buf,1024,0))<0)
perror("reading stream message");
if(rval==0)
printf("ending connection \n");
else
printf("---->%s\n",buf);
}while(rval!=0);
closesocket(msgsock);
}while(TRUE);
getch();
return 0;
}
//---------------------------------------------------------------------------