UDP通信プログラム 課題と回答例 岡村耕二 http://okaweb.ec.kyushu-u.ac.jp/lectures/in-ng/ 課題 1. “Hello World” という文字列を送信して、それを受信、 表示するプログラムを作成せよ。 // 送信側 { char *ch="Hello World"; write(sock,ch,1024); } // 受信側 { char ch[1024]; bzero(ch,1024); read(sock,ch,1024); printf("%s\n",ch); } 情報ネットワーク 2 課題 2.入力した文字列を送信して受信者側で表示し、EOF で 終了するプログラムを作成せよ。 // 送信側 // 受信側 while(1){ char ch; while(1){ char ch; read(sock, &ch, sizeof(char)); ch=getchar(); write(sock,&ch,sizeof(char)); if(ch==EOF) break; if(ch==EOF) break; printf("%c",ch); fflush(stdout); } } 情報ネットワーク 3 課題 3. 送信相手をFQDNで指定できるようにせよ。 ヒント: gethostbyname() を使う。 #include <stdio.h> #include <strings.h> #include <string.h> host=gethostbyname(arg[1]); if(host!=NULL) memcpy((char *)&s_addr, (char *)host->h_addr, host->h_length); else s_addr = inet_addr(arg[1]); #include <sys/types.h> #include <sys/socket.h> #include <netinet/in.h> #include <netdb.h> main(narg,arg) int narg; char **arg; { int sock; int s_addr; unsigned short port; struct sockaddr_in saddr; struct hostent *host, *gethostbyname(); 情報ネットワーク 4 「.」の入力で終了するプログラム #include<stdio.h> #include <strings.h> #include <string.h> main() { char buf[1024]; while(1){ bzero(buf,1024); printf("> "); fflush(stdout); fgets(buf,1024,stdin); if(buf[0]=='.'&&strlen(buf)==2) break; printf(“> %s",buf); } } 情報ネットワーク 5
© Copyright 2024 ExpyDoc