예제 #1
0
파일: server.c 프로젝트: exuuwen/study
		//i=strlen(test);
		//test[i]=0;
		printf("sharemem read  data ok data is :%s.and type is %d and the len is %d  \n",msg_sbuf2.mtext,msg_sbuf2.mtype,msg_sbuf2.offset);
		offset+=sizeof(msg_sbuf2);
		n++;
	}
		shmctl(shmid,IPC_RMID,0);	
	
}

int main(int  argc, char* argv[])
{
	int server_socketfd,client_socketfd;
	int server_len,client_len;
	struct sockaddr_in server_address;
	struct sockaddr_in client_address;
	int i,byte,n;
	
	
	server_socketfd=socket(AF_INET,SOCK_DGRAM,0);

	server_address.sin_family=AF_INET;
	server_address.sin_addr.s_addr=inet_addr("192.168.126.129");
	server_address.sin_port=htons(4321);	
	server_len=sizeof(server_address);
	
	bind(server_socketfd,(struct sockaddr *)&server_address,server_len);	
	
	

	printf("now recive the  data  from  client\n");
	client_address.sin_family=AF_INET;
예제 #2
0
int 
main(int argc, char** argv)
{
    int sockfd;
    struct sockaddr_in servaddr;
    struct sockaddr_in cliaddr;

    sockfd = socket(AF_INET, SOCK_DGRAM, 0);
    if(-1 == sockfd ){
        printf("create socket failed:%s", strerror(errno));
        return -1;
    }
        
    printf("create socket succ\n");

    bzero(&servaddr, sizeof(servaddr));
    servaddr.sin_family = AF_INET;
    servaddr.sin_addr.s_addr = htonl(INADDR_ANY);
    servaddr.sin_port = htons(SERV_PORT);

    int rv = bind(sockfd, (sockaddr*)&servaddr, sizeof(servaddr));
    if(-1 == rv) {
        printf("sock bind failed:%s\n",strerror(errno));
        return -1; 
    }

    printf("sock bind succ\n");

    printf("begin recv...\n");

    dg_echo(sockfd, (sockaddr*)&cliaddr, sizeof(cliaddr));
    return 0;
}
예제 #3
0
int loop()
{
	int					sockfd;
	struct sockaddr_in	servaddr, cliaddr;
#ifdef SC12
	int error;
#endif

#ifdef SC12
	sockfd = opensocket(SOCK_DGRAM, &error);
#else
	sockfd = socket(AF_INET, SOCK_DGRAM, 0);
#endif
	bzero(&servaddr, sizeof(servaddr));
	servaddr.sin_family      = AF_INET;
	servaddr.sin_addr.s_addr = htonl(INADDR_ANY);
	servaddr.sin_port        = htons(6454);

#ifdef SC12
	bind(sockfd, (const struct sockaddr far *) &servaddr, &error);
#else
	bind(sockfd, (SA *) &servaddr, sizeof(servaddr));
#endif

	return dg_echo(sockfd, (SA *) &cliaddr, sizeof(cliaddr));
}
예제 #4
0
int main(int argc, char **argv)
{
	int sockfd;
	int temp;
	struct sockaddr_in servaddr, cliaddr;

	sockfd = socket(AF_INET, SOCK_DGRAM, 0);
	if(sockfd < 0)
	{
	    printf("udp server error socket fail %d",sockfd);
		return 1;
	}

	//bzero(&servaddr, sizeof(servaddr));
	
	memset(&servaddr,0, sizeof(servaddr));
	servaddr.sin_family      = AF_INET;
	servaddr.sin_addr.s_addr = htonl(INADDR_ANY);
	servaddr.sin_port        = htons(SERV_PORT);

	temp = bind(sockfd, (struct sockaddr *) &servaddr, sizeof(servaddr));
	if(temp < 0)
	{
	    printf("udp server error bind fail %d",temp);
		return 1;
	}

	dg_echo(sockfd, (struct sockaddr *) &cliaddr, sizeof(cliaddr));
}
예제 #5
0
int main(int argc, char **argv)
{
	int					sockfd;
	struct sockaddr_un	servaddr, cliaddr;
	sockfd = socket(AF_LOCAL, SOCK_DGRAM, 0);
	unlink(UNIXDG_PATH);
	bzero(&servaddr, sizeof(servaddr));
	servaddr.sun_family = AF_LOCAL;
	strcpy(servaddr.sun_path, UNIXDG_PATH);
	bind(sockfd, (struct sockaddr *) &servaddr, sizeof(servaddr));
	dg_echo(sockfd, (struct sockaddr *) &cliaddr, sizeof(cliaddr));
}
int main(int argc, char **argv) {
	int sockfd;
	struct sockaddr_in sa, ca;
	
	sockfd = socket(AF_INET, SOCK_DGRAM, 0);
	bzero(&sa, sizeof(sa));
	
	sa.sin_family = AF_INET;
	sa.sin_port = htons(6000);
	sa.sin_addr.s_addr = htonl(INADDR_ANY);
	
	bind(sockfd, (struct sockaddr *) &sa, sizeof(sa));
	dg_echo(sockfd, (struct sockaddr *) &ca, sizeof(ca));
}
예제 #7
0
int main(int argc, char **argv){
  int sockfd;
  struct sockaddr_in servaddr, cliaddr;

  sockfd = Socket(AF_INET, SOCK_DGRAM, 0);

  bzero(&servaddr, sizeof(servaddr));
  servaddr.sin_family = AF_INET;
  servaddr.sin_addr.s_addr = htonl(INADDR_ANY);
  servaddr.sin_port = htons(SERV_PORT);

  Bind(sockfd, (SA *) &servaddr, sizeof(servaddr));

  dg_echo(sockfd, (SA *) &cliaddr, sizeof(cliaddr));
}
예제 #8
0
int main(int argc, char *argv[])
{
  int sockfd;
  struct sockaddr_in servaddr, cliaddr;
  //创建UDP套接字,捆绑服务器的众所周知的端口
  sockfd = Socket(AF_INET, SOCK_DGRAM, 0);
  
  bzero(&servaddr, sizeof(servaddr));
  servaddr.sin_family = AF_INET;
  servaddr.sin_addr.s_addr = htonl(INADDR_ANY);
  servaddr.sin_port = htons(SERV_PORT);
  
  Bind(sockfd, (SA*) &servaddr, sizeof(servaddr));
  //调用函数dg_echo来执行服务器的处理工作
  dg_echo(sockfd, (SA*) &cliaddr, sizeof(cliaddr));
}
예제 #9
0
/* 
 * ===  FUNCTION  ======================================================================
 *         Name:  main
 *  Description:  
 * =====================================================================================
 */
int main(int argc, char *argv[])
{
	int sockfd;
	struct sockaddr_in servaddr, cliaddr;

	sockfd = socket(AF_INET, SOCK_DGRAM, 0);

	memset(&servaddr, 0, sizeof(servaddr));
	servaddr.sin_family = AF_INET;
	servaddr.sin_addr.s_addr = htonl(INADDR_ANY);
	servaddr.sin_port = htons(65535);

	bind(sockfd, (struct sockaddr*)&servaddr, sizeof(servaddr));

	dg_echo(sockfd, (struct sockaddr*)&cliaddr, sizeof(cliaddr));

	return EXIT_SUCCESS;
}				/* ----------  end of function main  ---------- */
예제 #10
0
int main()
{
    int                   sockfd;
    struct sockaddr_in    serv_addr, cli_addr;
    int                   opt2;
    int                   optval = 0;
    socklen_t             optlen = 4;
    int                   z      = -1;
    int                   sendbuff;


    get_system_info();

    if(( sockfd = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP )) < 0 )
    {
        perror("server: can't open datagram socket");
        exit(1);
    }

    serv_addr.sin_family      = AF_INET;
    serv_addr.sin_addr.s_addr = htonl(INADDR_BROADCAST);
    serv_addr.sin_port        = htons(30303);

    opt2 = 1;
    z = setsockopt(sockfd, SOL_SOCKET, SO_BROADCAST, (const void *)&opt2, (socklen_t)sizeof(opt2));
   

    z = getsockopt(sockfd, SOL_SOCKET, SO_BROADCAST, (void *)&optval, (socklen_t *)&optlen);
    //printf("optval  = %d\n", optval);
    //printf("optlen  = %d\n", optlen);


    if( bind(sockfd, (struct sockaddr *)&serv_addr, sizeof(serv_addr)) < 0)
    {
        perror("server: can't bind local address");
        exit(1);
    }

    if( fork() == 0 )
        dg_echo( sockfd, (struct sockaddr *)&serv_addr, sizeof(serv_addr) );

    return 1;
}
예제 #11
0
int
main(int argc, char** argv)
{
    if (argc != 2)
    {
        cerr<<"USAGE:./server port"<<endl;
        return -1;
    }

    int                 sockfd;
    struct sockaddr_in  servaddr, cliaddr;
    sockfd = socket(AF_INET, SOCK_DGRAM, 0);

    bzero(&servaddr, sizeof(servaddr));

    servaddr.sin_family = AF_INET;
    servaddr.sin_addr.s_addr = htonl(INADDR_ANY);
    servaddr.sin_port   = htons(atoi(argv[1]));

    bind(sockfd, (SA*)&servaddr, sizeof(servaddr));

    dg_echo(sockfd, (SA*)&cliaddr, sizeof(cliaddr));
}
예제 #12
0
파일: udpserv01.c 프로젝트: AnSwErYWJ/UNP
int
main(int argc, char **argv)
{
	int					sockfd;
	struct sockaddr_in	servaddr, grpaddr, cliaddr;

	sockfd = Socket(AF_INET, SOCK_DGRAM, 0);

	bzero(&servaddr, sizeof(servaddr));
	servaddr.sin_family      = AF_INET;
	servaddr.sin_addr.s_addr = htonl(INADDR_ANY);
	servaddr.sin_port        = htons(SERV_PORT);

	Bind(sockfd, (SA *) &servaddr, sizeof(servaddr));

	bzero(&grpaddr, sizeof(servaddr));
	grpaddr.sin_family      = AF_INET;
	grpaddr.sin_addr.s_addr = inet_addr("224.0.0.1");

	mcast_join(sockfd, &grpaddr, sizeof(grpaddr), NULL, 0);

	dg_echo(sockfd, (SA *) &cliaddr, sizeof(cliaddr));
}
예제 #13
0
int main(int argc, char* argv[])
{
    int sockfd;

    struct sockaddr_in servaddr;
    if ( (sockfd = socket(AF_INET, SOCK_DGRAM, IPPROTO_UDP)) < 0)
    {
        perror("socket fail!");
        exit(EXIT_FAILURE);
    }

    memset(&servaddr, 0, sizeof(servaddr));
    servaddr.sin_family = AF_INET;
    servaddr.sin_port = htons(8888);
	if (argv[1] == NULL)
	{
		argv[1] = "0.0.0.0";
	}
    if (inet_aton(argv[1], &servaddr.sin_addr) == 0)
    {
        perror("inet_aton failure!");
        printf("address:%u\n", servaddr.sin_addr.s_addr);
        exit(EXIT_FAILURE);
    }
    if (bind(sockfd, (struct sockaddr*)&servaddr, sizeof(servaddr)) != 0)
    {
        perror("bind error!");
        exit(EXIT_FAILURE);
    }

    struct sockaddr_in cliaddr;

	dg_echo(sockfd, (struct sockaddr*)&cliaddr, sizeof(struct sockaddr));

    return 0;
}
예제 #14
0
//Funcion start
int start_server(const u_short port, const char baseDir[]) {

	int serverSocket;
	int clientSocket;
	
	char clientIP[18];
	u_int clientPort;
	
	int forkID;
	
	int localError;

	

	
	
	pid_t pid;
	if ((pid = fork()) == 0) {
		int	sockfd;
		struct sockaddr_in servaddr, cliaddr;
		sockfd = socket(AF_INET, SOCK_DGRAM, 0);

	bzero(&servaddr, sizeof(servaddr));
	servaddr.sin_family = AF_INET;
	servaddr.sin_addr.s_addr = htonl(INADDR_ANY);
	servaddr.sin_port = htons(PORT);

	bind(sockfd, (struct sockaddr *) &servaddr, sizeof(servaddr));

		dg_echo(sockfd, (struct sockaddr *) &cliaddr, sizeof(cliaddr));
		exit(0);
	}
	
	serverSocket = newTCPServerSocket4("0.0.0.0", 5001, 5);
	
	
	if(serverSocket == -1) {
		return 1;
	}
	
	while(true) {
		bzero(clientIP,sizeof(clientIP));
		clientPort = 0;
		
		debug(1,"%s","Waiting for a Client...");
		clientSocket = waitConnection4(serverSocket,clientIP,&clientPort);
		if(clientSocket == -1) {
			debug(1,"%s","ERROR: Invalid Client Socket");
			continue;
		}
		debug(2,"Connected Client %s:%u",clientIP,clientPort);
	
		forkID = fork();
		if(forkID == 0) {
		
		
			//Hilo para trabajar con el Cliente
			start_protocol(clientSocket,baseDir);
			closeTCPSocket(clientSocket);
			debug(2,"Close connection (%s:%u)",clientIP,clientPort);
			
		} else if(forkID > 0) {
			//Hilo para trabajar con el Servidor
			closeTCPSocket(clientSocket);
			
		} else {
			//Debug del fork.
			localError = errno;
			debug(0,"ERROR, Cant Fork for Client %s",strerror(localError));
			return 1;
		}
		
	}

	closeTCPSocket(serverSocket);	
	return 0;
	
}