|
>>3094 しん >chunkedでエンコードされ送られたデータはPOSTする際もchunkedで >エンコードして送り返さなければいけないのでしょうか。 そんなことは無いです。 >もしエンコードしたデータをPOSTしなければいけない場合はchunkedの >エンコード方法をお教え下さい。 要するにデータを細切れ(例えば1024byte毎)にして、 サイズ(16進) データ サイズ(16進) データ … 0 とすればいいだけです。(see http://www.studyinghttp.net/rfc_ja/2616/sec3.html#sec3.6.1) で、解決方法ですが、とりあえずHTTP/1.0で送ってみて下さい。 それでも失敗した場合は、とりあえずチャンク周りが原因ではありません。 |
|
>>3096 has様 MD5ですかぁ〜レベルが一気に上がったような気がしますが、 これからさっそく勉強していきたいと思います(苦笑 ほんとにhasさん、DQN..ccさん有難う御座いました。 |
|
Linux User という本に5つのディストリビューションが一気に 付録についてるので慌てて買ったんですけど、 よく考えるとコレ(よく考えなくても)CD じゃなくて DVD なんですよね、、。 会社で遊んでるマシンが1個あって、ただし会社のマシン管理のヒトが バックアップしてくれないから、バックアップデバイス兼ねて この機会に DVD-RAM を入れようかなあと思ったんですが、 Linux で読める DVD-RAM ドライブってあるんでしょうかね。 じっさいにはネットワーク経由で Debian(woody)を入れたので、 もう雑誌の付録は必要なくなったんですが、、 |
|
>>3099 ふくし > Linux で読める DVD-RAM ドライブってあるんでしょうかね。 FreeBSD でも DVD-RAM を読み書きできるくらいですから、 できなくはないでしょうけど、具体的な機種名などは わかりません。 検索すると DVD-RAM 対応カーネルパッチが云々などと いうのが引っかかるのですが、Linux 事情に疎いので それが最新の情報なのか判断できないです。 # てゆーか、DVD-RAM どころか CD-R さえ使ったことが # ないので。 |
|
findコマンドについて教えてください。 find . -user root とするとカレントディレクトリ以下の 所有者がrootになっているファイルが引っかかるかと思い ます。 それではなくて、所有者がrootになっていないファイルを 引っ掛けたいと思うのですが、その場合findコマンドはどの ように使えばいいでしょうか? 宜しくお願いします。 |
|
>>3101 bebe > 所有者がrootになっていないファイル % find . ! -user root % find . -false -user root % find . -not -user root などなど。 FreeBSD 4.7-RELEASE のマニュアルには ! と -false と -not が 書いてあるのに % find . -not -name \*.c find: -not: unknown option となってしまう。なぜだろう。ソースを見ると -not は効きそうなんだけれども。 http://www.jp.freebsd.org/cgi/cvsweb.cgi/src/usr.bin/find/option.c http://www.jp.freebsd.org/cgi/mroff.cgi?subdir=man&man=find&dir=jpman-4.7.0%2Fman |
|
send()について教えてください。 send()にてデータを送信しようとするとperrorにて「Illegal Seek」 と返ってきます。もちろんデータも送信できていません。 この現象の原因と対処法を教えていただけないでしょうか? socketとconnectはできています。 |
|
>>3103 wataru > Illegal Seek ってことは errno が ESPIPE なのでしょうけれど、手もとにある FreeBSD と Solaris2.6/8 を見ても、send(2) が ESPIPE を返すとは書いてありませんので、 わかりません。 てゆーか、OS 名も、OS のバージョンも、エラーの起こるコード例も提示せず 質問している、あなたという人間がわかりません。 |
|
ご無礼大変申し訳ありませんでした。現在私はHard Hut Linux2.0 でプログラムを組んでいます。 原因のソースコードは以下の様です。 if ((*s = socket(AF_INET, SOCK_STREAM, 0)) < 0) { // TCPでソケットを開く perror("socket"); s_vMsgSnd(TSK_ER , 71 , 40); return -1; } syslog(LOG_DEBUG,"s = %d",*s); syslog(LOG_DEBUG,"port = %d",port); // 接続に必要な情報を設定する memset((char *) &server, 0, sizeof(server)); server.sin_family = AF_INET; server.sin_addr.s_addr = dst_ip; //<GT_0010> server.sin_port = htons(port); s_vSigTimer(TIMER_START); alarm(TIMEOUT_SEC); if (connect(*s, (struct sockaddr *) &server, sizeof server) < 0) { // サーバとのコネクションを確立する perror("connect"); s_vSigTimer(TIMER_STOP); return -1; //<GT_0003> add } s_vSigTimer(TIMER_STOP); signal(SIGPIPE,ReCNCT); if(usCnctNG == FLAG_ON) return -1; 上記の方法でconnectまで持っていきます。 その後 while(sendbytes < MaxLENGTH){ nSended=send(*s,psz,strlen(psz),0); if(nSended == -1){ perror("SendError:"); s_vMsgSnd(TSK_ER , 71 , 57); s_vSigTimer(TIMER_STOP);return -1; }else if(counttim > 0){ syslog(LOG_DEBUG,"+*+*+*+*time over +*+*+*+*"); s_vSigTimer(TIMER_STOP);return -1; } psz+=nSended; sendbytes+=nSended; } でMaxLENGTHに達するまでデータを送信します。 |