Премини към съдържанието
dwni

socket програмиране

    Препоръчан отговор


    здравейте изучавам socket програмиране и се опивам да си напиша елементарен клиент и сървър ето ги и кодовете 1 клиент #include <stdio.h> #include <sys/socket.h> #include <arpa/inet.h> #include <sys/types.h> #include <netdb.h> #include <string.h> int main(int argc,char *argv[]){ struct addrinfo a, *b; int sock,status,v,u; char buffer[100],buffer1[100]; memset(&a,0,sizeof a); a.ai_family=AF_UNSPEC; a.ai_socktype=SOCK_STREAM; status=getaddrinfo(argv[1],argv[2],&a,&b); sock=socket(b->ai_family, b->ai_socktype, b->ai_protocol); u=connect(sock,b->ai_addr,b->ai_addrlen); if(u<0) perror(argv[1]); while(1){ //printf("Enter message:"); memset(buffer,0,sizeof(buffer)); gets(buffer); send(sock,buffer,strlen(buffer),0); //memset(buffer1,0,sizeof(buffer1)); recv(sock,buffer1,strlen(buffer1),0); printf(buffer1); } return 0;} 2 сървър #include <stdio.h> #include <sys/socket.h> #include <string.h> #include <sys/types.h> #include <stdlib.h> #include <arpa/inet.h> #include <errno.h> int main(int argc,char *argv[]){ int a, b, portno; char buf[100],buf1[100]; int addrlen, ro; struct sockaddr_in c; a=socket(AF_INET,SOCK_STREAM,0); if(a==0) perror("socket"); portno=atoi(argv[1]); c.sin_family=AF_INET; c.sin_addr.s_addr=INADDR_ANY; c.sin_port=htons(portno); if(bind(a,(struct sockaddr *)&c, sizeof©)<0) perror("bind"); char yes='1'; if (setsockopt(a,SOL_SOCKET,SO_REUSEADDR,&yes,sizeof(int)) == -1) { perror("setsockopt"); exit(1); } if(listen(a,5)<0) perror("listen"); addrlen=sizeof©; b=accept(a,(struct sockaddr *)&c,&addrlen); while (1){ memset(buf,0,sizeof(buf)); recv(b,buf,sizeof(buf),0); printf("%s\n",buf); gets(buf1); send(b,buf1,sizeof(buf1),sizeof(buf1)); //memset(buf,0,sizeof(buf)); } return 0;} ползвам send и recv когато изпратя съобщение от клиента към сървъра няма проблеми но когато опитам да изпратя от сървъра към клиента клиента не ги получава къде греша

    Сподели този отговор


    Линк към този отговор
    Сподели в други сайтове

    Регистрирайте се или влезете в профила си за да коментирате

    Трябва да имате регистрация за да може да коментирате това

    Регистрирайте се

    Създайте нова регистрация в нашия форум. Лесно е!

    Нова регистрация

    Вход

    Имате регистрация? Влезте от тук.

    Вход


    ×

    Информация

    Този сайт използва бисквитки (cookies), за най-доброто потребителско изживяване. С използването му, вие приемате нашите Условия за ползване.