エラー処理・分割コンパイル・コマンドライン引数

Similar documents
IP L09( Tue) : Time-stamp: Tue 14:52 JST hig TCP/IP. IP,,,. ( ) L09 IP (2017) 1 / 28

Makefile, TCPソケットサーバ, コマンドライン引数

ランダムウォークの確率の漸化式と初期条件

疎な転置推移確率行列

1) // 2) I/O 3) Japan Advanced Institute of Science and Technology 2013/07/26 1

実験 6 通信基礎実験 1 目的 ネットワークを通じてデータ転送を行うことを体験的に学ぶために 本実験ではT CP/IPプロトコルを使い ワークステーション間で通信を行うクライアントサーバモデルのプログラムを作成する 2 解説 1 ネットワークとプロトコルネットワーク ( コンピュータネットワーク

55 7 Java C Java TCP/IP TCP/IP TCP TCP_RO.java import java.net.*; import java.io.*; public class TCP_RO { public static void main(string[] a

para02-2.dvi

データの分布

3 3.1 LAN ISDN (IP) 2 TCP/UDP IP IP IP IP (Ethernet) Ethernet LAN TCP/UDP LAN Ethernet LAN 2: Ethernet ATM, FDDI, LAN IP IP IP 3 IP 2 IP IP IP IP IP 3

10/ / /30 3. ( ) 11/ 6 4. UNIX + C socket 11/13 5. ( ) C 11/20 6. http, CGI Perl 11/27 7. ( ) Perl 12/ 4 8. Windows Winsock 12/11 9. JAV

2 1: OSI OSI,,,,,,,,, 4 TCP/IP TCP/IP, TCP, IP 2,, IP, IP. IP, ICMP, TCP, UDP, TELNET, FTP, HTTP TCP IP

A/B (2018/10/19) Ver kurino/2018/soft/soft.html A/B

¥Í¥Ã¥È¥ï¡¼¥¯¥×¥í¥°¥é¥ß¥ó¥°ÆÃÏÀ

I 2 tutimura/ I 2 p.1/??

double float

untitled

演算増幅器

XMPによる並列化実装2

ex01.dvi

DA100データアクイジションユニット通信インタフェースユーザーズマニュアル

untitled

WinHPC ppt

£Ã¥×¥í¥°¥é¥ß¥ó¥°ÆþÌç (2018) - Â裶²ó ¨¡ À©¸æ¹½Â¤¡§·«¤êÊÖ¤· ¨¡

1.ppt


untitled

TCP/IP Internet Week 2002 [2002/12/17] Japan Registry Service Co., Ltd. No.3 Internet Week 2002 [2002/12/17] Japan Registry Service Co., Ltd. No.4 2

Microsoft Word - C.....u.K...doc

ex01.dvi

C

II 3 yacc (2) 2005 : Yacc 0 ~nakai/ipp2 1 C main main 1 NULL NULL for 2 (a) Yacc 2 (b) 2 3 y

£Ã¥×¥í¥°¥é¥ß¥ó¥°ÆþÌç (2018) - Â裵²ó ¨¡ À©¸æ¹½Â¤¡§¾ò·ïʬ´ô ¨¡

: CR (0x0d) LF (0x0a) line separator CR Mac LF UNIX CR+LF MS-DOS WINDOWS Japan Advanced Institute of Science and Technology

II ( ) prog8-1.c s1542h017%./prog8-1 1 => 35 Hiroshi 2 => 23 Koji 3 => 67 Satoshi 4 => 87 Junko 5 => 64 Ichiro 6 => 89 Mari 7 => 73 D

main main Makefile Makefile C.5 Makefile Makefile Makefile A Mech (TA ) 1. Web ( iku

untitled

新・明解C言語 ポインタ完全攻略

Microsoft Word - Win-Outlook.docx

untitled

第5回お試しアカウント付き並列プログラミング講習会

独立性の検定・ピボットテーブル

Microsoft Word - EGX100によるH663通信手引

目次 1. DB 更新情報受信 SW 仕様書 構成および機能 全体の構成 DB 更新情報受信 SW の機能 ソフトウェアの設計仕様 DB 更新情報受信 SW の仕様 資料編... 5

LogisticaTRUCKServer-Ⅱ距離計算サーバ/Active-Xコントロール/クライアント 概略   

カテゴリ変数と独立性の検定

ランダムウォークの境界条件・偏微分方程式の数値計算

Oracle Application Server 10g( )インストール手順書

comment.dvi

Network Programming

untitled

tuat1.dvi

±é½¬£²¡§£Í£Ð£É½éÊâ

Condition DAQ condition condition 2 3 XML key value

第2回_416.ppt

RTX830 取扱説明書

lexex.dvi

4 実験結果 // 用意されたヘッダファイル #include < stdio.h> #include < fcntl.h> #include < netdb.h> #include < sys/types.h> #include < sys/socket.h> #include < sys/sta

新・明解Java入門

H indd

CM-3G 周辺モジュール拡張技術文書 MS5607センサ(温度、気圧)

untitled

1 C STL(1) C C C libc C C C++ STL(Standard Template Library ) libc libc C++ C STL libc STL iostream Algorithm libc STL string vector l

1 Linux UNIX-PC LAN. UNIX. LAN. UNIX. 1.1 UNIX LAN. 1.2 Linux PC Linux. 1.3 studenta odd kumabari studentb even kumabari studentc odd kumabari student

G1. : 1

1 telnet WWW 1.1 telnet WWW URL html 1.2 URL 1 % telnet 80 Trying 2001:2f8:1c:d048::850d: telnet: c

10/ / /30 3. ( ) 11/ 6 4. UNIX + C socket 11/13 5. ( ) C 11/20 6. http, CGI Perl 11/27 7. ( ) Perl 12/ 4 8. Windows Winsock 12/11 9. JAV

CLUSTERPRO ファイルサーバ監視オプション編

分散分析・2次元正規分布

Packet Tracer: 拡張 ACL の設定 : シナリオ 1 トポロジ アドレステーブル R1 デバイスインターフェイス IP アドレスサブネットマスクデフォルトゲートウェイ G0/ N/A G0/

通信プログラムの試作ーーー UDP を用いたじゃんけんゲームシステム ーーーー裘彬濱 南山大学情報理工学部 ソフトウェア工学科青山研究室

thesis.dvi

IP 2.2 (IP ) IP 2.3 DNS IP IP DNS DNS 3 (PC) PC PC PC Linux(ubuntu) PC TA 2

UsersGuide_INR-HG5497c_.doc

£Ã¥×¥í¥°¥é¥ß¥ó¥°(2018) - Âè11²ó – ½ÉÂꣲ¤Î²òÀ⡤±é½¬£² –

"CAS を利用した Single Sign On 環境の構築"

tutorial_lc.dvi

Oracle Calendar Oracle Collaboration Suite 2(9.0.4) Creation Date: Jun 04, 2003 Last Update: Nov 18, 2003 Version:

file"a" file"b" fp = fopen("a", "r"); while(fgets(line, BUFSIZ, fp)) {... fclose(fp); fp = fopen("b", "r"); while(fgets(line, BUFSIZ, fp)) {... fclose

Dec , IS p. 1/60

MPI usage

<4D F736F F D20566F F6E658C6791D FE382C582CC4A D834F E F8F4390B394C52E646F63>

Baud Rate 9600 Parity NONE Number of Data Bits 8 Number of Stop Bits 1 Flow Control NONE 1 RS232C 200mm 2,000mm DIMM ( ) Telescope East/West LX200 * 1

Page 1

Microsoft Windows, Windows CE, Microsoft Corporation Citrix ICA Citrix Presentation Server Citrix Systems, Inc IBM IBM Corporation

/ SCHEDULE /06/07(Tue) / Basic of Programming /06/09(Thu) / Fundamental structures /06/14(Tue) / Memory Management /06/1

nakanojoP01

FileMaker Server 15 入門ガイド

広報なんと10月号

rmi.book

I. Backus-Naur BNF : N N 0 N N N N N N 0, 1 BNF N N 0 11 (parse tree) 11 (1) (2) (3) (4) II. 0(0 101)* (

NI P1200 Release Notes Cover

( CUDA CUDA CUDA CUDA ( NVIDIA CUDA I

IT講習会

ex12.dvi

slide5.pptx

HP Server tc2120 Microsoft Windows 2000 Server SP3 HP P

時系列解析と自己回帰モデル

untitled

<Documents Title Here>

Transcription:

L10(2017-12-05 Tue) : Time-stamp: 2017-12-17 Sun 11:59 JST hig. recv/send http://hig3.net ( ) L10 (2017) 1 / 21

IP I swallow.math.ryukoku.ac.jp:13 = 133.83.83.6:13 = : IP ( = ) (well-known ports), :. :,. socket, connect, recv/send, shutdown, close. ( ) L10 (2017) 2 / 21

9 IP 10 ( ) L10 (2017) 3 / 21

daytime :,, 2017-12-03 Sun 13:27. RFC Protocol ().. TCP, IP, HTTP P Protocol P. HTTP penguin count, (c), c Adelie Penguins!. Penguins!., : echo : http(s).,, Web API. ( ) L10 (2017) 4 / 21

( ) 1 #i n c l u d e <s t d i o. h> 2 #i n c l u d e <s t r i n g. h> / memset / 3 #i n c l u d e <s y s / s o c k e t. h> / s o c k e t, c o n n e ct / 4 #i n c l u d e <arpa / i n e t. h> / htons / 5 #i n c l u d e <n e t i n e t / i n. h> / htons, i n e t a d d r / 6 #i n c l u d e <u n i s t d. h> / c l o s e s i z e o f / 7 #i n c l u d e < s t d l i b. h> 8 9 #d e f i n e SERVER ADDR 1 2 7. 0. 0. 1 10 #d e f i n e SERVER PORT 22222 11 #d e f i n e BUFFERSIZE 1024 12 13 i n t main ( ) { 14 15 i n t s ; 16 s t r u c t s o c k a d d r i n sa ; 17 i n t count ; 18 char r e c v b u f [ BUFFERSIZE ] ; ( ) L10 (2017) 5 / 21

19 char s e n d b u f []= count something. ; 20 i n t s t a t u s ; 21 22 / / 23 s = s o c k e t ( AF INET, SOCK STREAM, 0 ) ; 24 i f ( s== 1 ){ 25 p e r r o r ( s o c k e t ) ; 26 e x i t ( 1 ) ; 27 } 28 29 / : / 30 memset(&sa, 0, s i z e o f ( sa ) ) ; 31 sa. s i n f a m i l y=af INET ; 32 sa. s i n p o r t=htons (SERVER PORT ) ; 33 sa. s i n a d d r. s a d d r=i n e t a d d r (SERVER ADDR ) ; 34 35 / = open / 36 s t a t u s=c o n nect ( s, ( s t r u c t s o c k a d d r )& sa, s i z e o f ( sa ) ) ; 37 i f ( s t a t u s == 1){ 38 p e r r o r ( penguin connect ) ; 39 e x i t ( 1 ) ; ( ) L10 (2017) 6 / 21

40 } 41 42 / p r i n t f / 43 count=send ( s, sendbuf, s t r l e n ( s e n d b u f ), 0 ) ; 44 i f ( count== 1 ){ 45 p e r r o r ( penguin send ) ; 46 e x i t ( 1 ) ; 47 } 48 49 / s c a n f / 50 count=r e c v ( s, r e c v b u f, BUFFERSIZE 1, 0 ) ; 51 i f ( count== 1 ){ 52 p e r r o r ( penguin r e c v ) ; 53 e x i t ( 1 ) ; 54 } 55 56 / / 57 r e c v b u f [ count ]= \0 ; 58 p r i n t f ( %s, r e c v b u f ) ; 59 60 / c l o s e / ( ) L10 (2017) 7 / 21

61 62 s t a t u s=shutdown ( s, SHUT RDWR ) ; 63 i f ( s t a t u s == 1){ 64 p e r r o r ( penguin shutdown ) ; 65 e x i t ( 1 ) ; 66 } 67 68 s t a t u s=c l o s e ( s ) ; 69 i f ( s t a t u s == 1){ 70 p e r r o r ( penguin c l o s e ) ; 71 } 72 73 r e t u r n 0 ; 74 } ( ) L10 (2017) 8 / 21

9 IP 10 ( ) L10 (2017) 9 / 21

ex. syntax error ex. segmentation fault,. : return,,., 1. 0. stdlib.h void exit(int status),, OS. 0.. ( ) L10 (2017) 10 / 21

socket, connect, recv, send., OS II ( OS Linux ) / (Linux).,,, perror(3), man 3 perror, (, ) ( ) L10 (2017) 11 / 21

perror perror( );,, errno + + : + stderr. 1 #i n c l u d e <s t d i o. h> 2 void p e r r o r ( char s ) ; perror(3), (if-then),, #include <errno.h>, int errno, char *sterror(int errno). perror.,,. fprintf ( stderr, something ) ( II) ( ) L10 (2017) 12 / 21

s=s o c k e t (... ) ; i f ( s== 1){ / ; / } / s, s o c k e t ( 2 ) / / s o c k e t ( i f ( s o c k e t (...)== 1 ){ / ; /} / s o c k e t s / i f ( ( s=s o c k e t (... ) ) == 1 ){ / ; /} (a=f())==2., a=(f()==2), a 0 1 ( if ) C,, i f ( 1==do something ( ) ) d i e ( ) ;. OR. Get up or you will be late. ( ( 1==do something ( ) ) ( d i e ( ) ) ) ; exception( ), try-catch in Java (3 ) ( ) L10 (2017) 13 / 21

9 IP 10 ( ) L10 (2017) 14 / 21

,, 1 i f ( ()== ){ 2 p e r r o r ( ) ; 3 e x i t ( 1 ) ; 4 }. + ( ) 1 p e r r o r ( ) ; 2 e x i t ( 1 ) ;, void die(char message[]). die.h, die.c, Makefile. Refactoring ( ),,, ( ) L10 (2017) 15 / 21

9 IP 10 ( ) L10 (2017) 16 / 21

telnet telnet(1), nc(1) t e l n e t nc C host port host port,. telnet Control ], quit + Enter. nc Control C. t e l n e t www. a. math. ryukoku. ac. j p 80 GET /, Web URL http://www.a.math.ryukoku.ac.jp,. 80? m ( ) L10 (2017) 17 / 21

t e l n e t www. math. ryukoku. ac. j p 80 #a r g v [ 0 ] a r g v [ 1 ] a r g v [ 2 ] a r g c=3 www.mathr.ryukoku.ac.jp, 80 ( 1, 2).,, man., -c, --help -,. t a i l penguin c l i e n t. c t a i l 30 penguin c l i e n t. c t a i l r 30 penguin c l i e n t. c ( ) L10 (2017) 18 / 21

C main i n t main ( i n t argc, char a r g v [ ] ) {... } / i n t main ( i n t argc, c h a r a r g v ){... } / argc.. argv = 0 1 2 3 4 5 6 argv[0] t e l n e t \0 argv[1] w w w. m a t \0 argv[2] 8 0 \0 ( ) L10 (2017) 19 / 21

1 #i n c l u d e <s t d i o. h> 2 #i n c l u d e <s t r i n g. h> 3 #d e f i n e BUFSIZE 1000 4 5 i n t main ( i n t argc, char a r g v [ ] ) { 6 / i n t main ( i n t argc, c h a r a r g v ){ / 7 / a r g v, = / 8 9 char message [ BUFSIZE ] ; 10 char a n d s t r i n g []= and ; 11 12 s t r c p y ( message, a r g v [ 1 ] ) ; 13 s t r c a t ( message, a n d s t r i n g ) ; 14 s t r c a t ( message, a r g v [ 2 ] ) ; 15 16 / f o r t e s t / 17 / p r i n t f ( %c \n, a r g v [ 0 ] [ 0 ] ) ; / 18 / p r i n t f ( %c \n, a r g v [ 0 ] [ 1 ] ) ; / 19 / p r i n t f ( % s \n, a r g v [ 0 ] ) ; / 20 21 p r i n t f ( %s \n, message ) ; 22 23 r e t u r n 0 ; 24 } ( ) L10 (2017) 20 / 21

3.5 4.5(1-502), 4(1-502) 2017-11-28 12 12. L11.,,, Learn Math Moodle,. ( ) L10 (2017) 21 / 21