|
>>4591 いち nawk -v key=1 '{ for(;;){if($1!=key) {print key; key++;} else{key=$1+1; break;}} }' a.txt でできました。 |
|
>>No. 4588 68user No.4587のS-MSK☆です。 ご回答有難う御座いました。 |
|
FTP クライアントを作ってみよう (1) FTP プロトコルの概略 |
|
>管理人様 FTP クライアントを作ってみよう (1) FTP プロトコルの概略 が大変勉強になりました。ありがとうございました。 |
|
vmstatをファイルへ出力する時に、1行毎に日時を編集したいのですがうまく出来ません。AIXですと下記のスクリプトでうまくいっているのですがsoralisではどのようにしたらよいでしょうか。 vmstat $1 $2 | awk '!/kthr|---|avm/ {printf("%s | ", $0);system("date")}' >> $LOGDIR$DATE |
|
>>4596 くるみんパパ system関数が使いたいのであればnawkか/usr/xpg4/bin/awkを使用してください。 |
|
>>4597zshさん nawkで解決しました。助かりました。ありがとうございました。 |
|
はじめまして。TCP/IPについて素朴な質問があります。 TCP/IPでは、ACKに対するSYNのタイムアウトがあり、 通常のLINUXであれば180秒ほどだと思います。 一方、telnetで存在しないIPを指定すると上記タイムアウトまでかからず、 以下のメッセージが出て接続できません。 Trying 192.168.60.113... telnet: Unable to connect to remote host: No route to host この場合、なぜ上記タイムアウトまで待たないのでしょうか。 telnetコマンドにて 明示的にTCPリトライ回数を指定していると考えていいのでしょうか。 また、このメッセージの意味するところはどういうところなのでしょう? 誰かご存知の方がいたらご教授願います。 |
|
>>4599 勉強中 直接的な回答ではありませんが、 http://X68000.q-e-d.net/~68user/net/tcp-connect-1.html をご一読ください。なお、EHOSTUNREACH が No route to host です。 |
|
>68userさん 早速のコメントありがとうございます。 要するにアプリケーションの実装によるということですね。 (つまり、ICMP 終点到達不可メッセージを受信した際に、 ただちにコネクション確立を中止するかしないかというポリシーによるということ) ちなみにftpでもtelnetと同様でした。 |
|
>>4601 勉強中 > 要するにアプリケーションの実装によるということですね。 いいえ、OS の TCP スタックの実装による、だと思います。 アプリ側で対応する、つまり TCP で接続しつつ、ICMP のエラーを解析という ことが可能かどうかはやったことがないのでわかりませんが、少なくとも ftp や telnet という基本的なアプリがそういう小細工をしている可能性は低いと思います。 |
|
>>4602 68user > アプリ側で対応する、つまり TCP で接続しつつ、ICMP のエラーを解析という > ことが可能かどうかはやったことがないのでわかりませんが、少なくとも ftp や > telnet という基本的なアプリがそういう小細工をしている可能性は低いと思います。 ICMP のエラーを解析する必要はなかったですね。connect(2) が -1 を返したとき EHOSTUNREACH なら再接続、などとすればアプリ側で対応できます。 とはいえ、やはり ftp や telnet がそういうことをする必然性はないと思います。 |
|
はじめまして。ネットワークプログラムについて質問させてください。 リミテッドブロードキャスト(255.255.255.255へ)を行いたいのですが、sockaddr_in のアドレス部分に上記を入れても、何故かディレクテッドブロードキャスト(私の環境 では 192.168.1.255 )になってしまいます。正しくリミテッドブロードキャストする 方法はないでしょうか。setsockopt でブロードキャストのフラグを立てる、などは 行っています。環境は FreeBSD & gcc です。 以下、重要部分の抜粋です(エラー処理などは省いています)。 struct sockaddr_in addr; int broadcast = 1; char buf[] = "test"; addr.sin_family = AF_INET; addr.sin_addr.s_addr = inet_addr("255.255.255.255"); addr.sin_port = htons(2000); sock = socket( AF_INET, SOCK_DGRAM, IPPROTO_UDP ); setsockopt( sock, SOL_SOCKET, SO_BROADCAST, (char*)&broadcast, sizeof(broadcast) ); sendto( sock, buf, sizeof(buf), 0, (struct sockaddr*)&addr, sizeof(struct sockaddr) ); ごく普通のコードだと思うのですが、パケットをモニターすると、送り先アドレスが ディレクテッドブロードキャストになってしまっています。アドバイスだけでもいいので 助言いただけるとうれしいです。 |