Přidat otázku mezi oblíbenéZasílat nové odpovědi e-mailem C - select() client sa nepripoji na server

Ahoj, rad by som vytvoril server, kde klient posle spravu serveru a ten mu nasledne odpovie. Pre tento pripad som na klientovi spravil select, ktory fungoval bezchybne. Taktiez som chcel ale implementovat, aby server nielen prijmal spravy od clienta a podla toho konal a nasledne mu napisal vysledok, ale aj priamo dat do servera input z klavesnice lokalne.. t.j. server bude pocuvat na prikazy co mu posle klient, ale aj manualne cez command line. Tak som sa rozhodol spravit taky isty select aj na serveri ... no bohuzial nedari sa mi pripojit klienta na server :/

Moj server - connected nevypise program caka presne na riadku nadnim (otestovane).

int server(){
  int s, ns, r, rv;
  char buffer[MAXSIZE];
  struct sockaddr_un ad;
  fd_set rs;
  
  bzero(buffer,MAXSIZE);
  memset(&ad,0,sizeof(ad));										                                  
  ad.sun_family=AF_LOCAL;
  strcpy(ad.sun_path,"./sock");
  		                              
  if((s=socket(PF_LOCAL,SOCK_STREAM,0))==-1)printf("Socket not found!\n");
  unlink("./sock");
  bind(s,(struct sockaddr *)&ad,sizeof(ad));					                          
  listen(s,5);													                                          
  printf("Waiting for client...\n");
  ns=accept(s, NULL, NULL);
  
  FD_ZERO(&rs);
  FD_SET(0,&rs);
  FD_SET(s,&rs);
  rv=select(s+1,&rs,NULL,NULL,NULL);				                                  
  printf("Connected!\n\n");
}

Klient taktiez zastavi na tom istom prikaze ako u servera:

int client(){
  int s, r, rv;
  char buffer[MAXSIZE];
  struct sockaddr_un ad;
  fd_set rs;
  
  memset(&ad,0,sizeof(ad));										                                  
  ad.sun_family=AF_LOCAL;
  strcpy(ad.sun_path,"./sock");
  
  if((s=socket(PF_LOCAL,SOCK_STREAM,0))==-1)printf("Socket not found!\n");							                              
  connect(s,(struct sockaddr *)&ad,sizeof(ad));					                         
  FD_ZERO(&rs);
  FD_SET(0,&rs);
  FD_SET(s,&rs);
  rv=select(s+1,&rs,NULL,NULL,NULL);					                          
  printf("Connected!\n\n");
}
Předmět Autor Datum
Nenašly se žádné odpovědi.

Zpět do poradny Odpovědět na původní otázku Nahoru