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

Архивирана тема

Темата е твърде стара и е архивирана. Не можете да добавяте нови отговори в нея, но винаги можете да публикувате нова тема, в която да продължи дискусията. Регистрирайте се или влезте във вашия профил за да публикувате нова тема.

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 когато изпратя съобщение от клиента към сървъра няма проблеми но когато опитам да изпратя от сървъра към клиента клиента не ги получава къде греша

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


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

някой може ли да помогне

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


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

×

Информация

Поставихме бисквитки на устройството ви за най-добро потребителско изживяване. Можете да промените настройките си за бисквитки, или в противен случай приемаме, че сте съгласни с нашите условия за ползване.