Hallo,
Aan de hand van andere topics heb ik meeste vragen opgelost maar ik heb er een paar vragen over hieronder code die ik niet uit kan komen.
- Is dit een TCP of UDP server en aan de hand van welke code heb je dit bepaalt?
*UDP, dat begrijp ik via code if ((sockfd = socket(PF_INET, SOCK_DGRAM, 0)) == -1)
docket wordt gemaakt SOCK_DGRAM dus UDP?
- Onder Windows werkt deze server direct maar onder Unix mag hij alleen door de superuser worden gestart, wat is hiervan de reden?
*Want, onder unix door BSD librarys kunnen service porten alleen door superuser worden gestart. service poorten zijn 0-1023
-Maak de server af de bedoeling is dat hij de data die hij ontvangt echod naar de client?
*Eind van de code plaats ik volgende;
main() {
char *data ;
initserv() ;
while(1) {
data = MySend() ;
}
}
Er moet toch nog ergens sendto komen?
-Kan deze server ook concurrent gemaakt worden?
Wat is bedoeling van concurrent?
Aan de hand van andere topics heb ik meeste vragen opgelost maar ik heb er een paar vragen over hieronder code die ik niet uit kan komen.
Code:
int sockfd ;
char buf[MAXBUFLEN] ;
struct sockaddr_in my_addr;
struct sockaddr_in their_addr;
void initserv() {
if ((sockfd = socket(PF_INET, SOCK_DGRAM, 0)) == -1) {
perror("socket");
abort();
}
my_addr.sin_family = AF_INET;
my_addr.sin_port = htons(513);
my_addr.sin_addr.s_addr = INADDR_ANY;
memset(&(my_addr.sin_zero), '\0', 8);
if (bind(sockfd, (struct sockaddr *)&my_addr,sizeof(struct sockaddr)) == -1) {
perror("bind");
abort();
}
addr_len = sizeof(struct sockaddr);
}
char *MyRecv() {
int numbytes = 0 ;
if ((numbytes=recvfrom(sockfd, buf, MAXBUFLEN-1 , 0,(struct sockaddr *)&their_addr, &addr_len)) == -1) {
perror("recvfrom");
abort();
}
buf[numbytes] = '\0';
return buf ;
}
main() {
char *data ;
initserv() ;
while(1) {
data = MyRecv() ;
}
}
- Is dit een TCP of UDP server en aan de hand van welke code heb je dit bepaalt?
*UDP, dat begrijp ik via code if ((sockfd = socket(PF_INET, SOCK_DGRAM, 0)) == -1)
docket wordt gemaakt SOCK_DGRAM dus UDP?
- Onder Windows werkt deze server direct maar onder Unix mag hij alleen door de superuser worden gestart, wat is hiervan de reden?
*Want, onder unix door BSD librarys kunnen service porten alleen door superuser worden gestart. service poorten zijn 0-1023
-Maak de server af de bedoeling is dat hij de data die hij ontvangt echod naar de client?
*Eind van de code plaats ik volgende;
main() {
char *data ;
initserv() ;
while(1) {
data = MySend() ;
}
}
Er moet toch nog ergens sendto komen?
-Kan deze server ook concurrent gemaakt worden?
Wat is bedoeling van concurrent?