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

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


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

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

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

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

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

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

Вход

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

Вход

×

Информация

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