検索結果 181 件

by helloworld1853
13年前
フォーラム: C言語何でも質問掲示板
トピック: きれいなソースコードの書き方
返信数: 25
閲覧数: 13821

Re: きれいなソースコードの書き方

すみません。 今気づきました。 知恵袋に補足しようとしましたが 投票中でだめでした。 投票中が終わって補足できるようになるまで 新しいトピックを作るのはやめます。 以後気をつけます。 http://s1.etowns.server-on.net/~yamada_mama_papa/functions.h http://s1.etowns.server-on.net/~yamada_mama_papa/server_main.cpp http://s1.etowns.server-on.net/~yamada_mama_papa/client_main.cpp さて ソースコードを自分なりに改善...
by helloworld1853
13年前
フォーラム: C言語何でも質問掲示板
トピック: pthread_create 関数を windows でも使えるようにする
返信数: 4
閲覧数: 3856

Re: pthread_create 関数を windows でも使えるようにする

ありがとうございます。
これですべてのソースコードを
windows用へ変換できました。

>前回の質問が未解決ですのでお願いします。
ご心配してくださってありがとうございます。
寄り道してしまいました。

コード:

CreateThread(0, 0, (LPTHREAD_START_ROUTINE)accept_request, (LPVOID)client_sock, 0, (LPDWORD)&newthread
たかぎさん、softyaさん
ありがとうございます。
by helloworld1853
13年前
フォーラム: C言語何でも質問掲示板
トピック: pthread_create 関数を windows でも使えるようにする
返信数: 4
閲覧数: 3856

pthread_create 関数を windows でも使えるようにする

あるUnix用ソースコードを VC++ でコンパイルできるようにしているのですが、 pthread_create で躓いています。 以下にソースコードの一部をのせました。 pthread_create は CreateThread に対応しているみたいですが、 引数がまったく違って困っています。 何かアドバイスや解決方法があれば お願いします。 int main(void) { int server_sock = -1; u_short port = 0; int client_sock = -1; struct sockaddr_in client_name; int client_name...
by helloworld1853
13年前
フォーラム: C言語何でも質問掲示板
トピック: きれいなソースコードの書き方
返信数: 25
閲覧数: 13821

Re: きれいなソースコードの書き方

うまくいきませんでした。
長引きそうなので、新しいトピックをたてます。
問題点が次から次へと出てきてくじけそうですが、
がんばります。
by helloworld1853
13年前
フォーラム: C言語何でも質問掲示板
トピック: きれいなソースコードの書き方
返信数: 25
閲覧数: 13821

Re: きれいなソースコードの書き方

>どうなるんでしょう? やってみたらどうでしょうか?
いつもは母のパソコンがあるので、それを使って
通信のテストができたのですが、
今は使えないので、質問させていただきました。
とりあえず自分のパソコンでテストしてみます。

>それはそれとして前の質問はスルーなのでしょうか?
すみません。
お礼を申し上げ忘れていました。
string='\0';
を使って初期化します。
by helloworld1853
13年前
フォーラム: C言語何でも質問掲示板
トピック: きれいなソースコードの書き方
返信数: 25
閲覧数: 13821

Re: きれいなソースコードの書き方

今プログラムのテスト動作をしたのですが、
ファイアウォールにひかかってしまいます。
upnpを使おうとしているのですが、
資料が少なくて困っています。
唯一見つけたサンプルコードが
http://ohwhsmm7.web.fc2.com/win/UPnP.cpp
なんですけど、
このソースコードのメイン関数に
PortOpen( "192.168.1.2", 12345 );
PortClose( "192.168.1.2", 12345 );
と書かれているのですが・・・
"192.168.1.2"の部分をグローバルIPにすると、
どうなるんですか?
by helloworld1853
13年前
フォーラム: C言語何でも質問掲示板
トピック: きれいなソースコードの書き方
返信数: 25
閲覧数: 13821

Re: きれいなソースコードの書き方

よくデバッグするとき、
あるchar配列の中身が
半角の「フフフフフフ・・・」になっているときと
そうなっていないときがあります。
どうしてですか。

あと、ポインタがさす配列を'\0'で初期化する方法
はありませんか。

ソースコードを書く上で重要なので、よろしくお願いします。
by helloworld1853
13年前
フォーラム: C言語何でも質問掲示板
トピック: EXEとEXEの合体
返信数: 16
閲覧数: 7592

Re: EXEとEXEの合体

とりあえず疑問がすべて解決したので、
解決とさせていただきます。
ありがとうございました。
by helloworld1853
13年前
フォーラム: C言語何でも質問掲示板
トピック: EXEとEXEの合体
返信数: 16
閲覧数: 7592

Re: EXEとEXEの合体

こんなプログラムにしようと思ったのは簡単だと思ったのですが、
話を聞けば聞くほど難易度が高くなっていて残念です。
あきらめます。
しばらくもとのプロジェクトをつくります。
softyaさんお付き合いいただいてありがとうございます。
by helloworld1853
13年前
フォーラム: C言語何でも質問掲示板
トピック: EXEとEXEの合体
返信数: 16
閲覧数: 7592

Re: EXEとEXEの合体

実は僕が作ろうとしているパッキングは少し変わった動きをします。
うまくいえないのですが、
プログラム本体のアセンブリコードを
XORで暗号化し、復元用アセンブリコードを挿入します。
この復元用アセンブリコードが少し特殊です。
さっき提示したソースコードのようにメモリ違反をして
暗号化した箇所をXORで復元します。
現実にできそうですか?
by helloworld1853
13年前
フォーラム: C言語何でも質問掲示板
トピック: EXEとEXEの合体
返信数: 16
閲覧数: 7592

Re: EXEとEXEの合体

目的はパッキングを作ることです。 ただ、かなり基本的なパッキングなので、 クラッキング対策はつけていません。 ところで、これも関係がある話なので、 お答えいただきたいのですが、 #include<stdio.h> int main(void){ unsigned char mes[] = {"HELLOWORLD"}; int counter = 0; for( counter = 0; counter < 100; counter += 1){ printf("0x%02X ", mes[counter]); } } 以下のプログラムを実行すると、 0x48 0x45 0x4C 0x4C 0...
by helloworld1853
13年前
フォーラム: C言語何でも質問掲示板
トピック: EXEとEXEの合体
返信数: 16
閲覧数: 7592

Re: EXEとEXEの合体

手順として、
・アセンブリを入れる分のコード領域を確保(PEヘッダ 加工)
・エントリーポイントの場所変更(アセンブリの前へ)
・何らかの方法で元のexeが実行できるように配置
・ファイル書き出し


・アセンブリを入れる分のコード領域を確保(PEヘッダ 加工)
・エントリーポイント直後にアセンブリ配置
・アセンブリの直後にもとのexeファイルの機械語配置(こんな単純な方法でだいじょうぶですか。アセンブリに少し細工をしたほうがよいのでしょうか。)
・ファイル書き出し

どちらが簡単ですか。
by helloworld1853
13年前
フォーラム: C言語何でも質問掲示板
トピック: EXEとEXEの合体
返信数: 16
閲覧数: 7592

Re: EXEとEXEの合体

実は今、突然思い立って
EXEファイルのエントリーポイントの直後にアセンブリコード(機械語に変換して)
を挿入するプログラムを作っています。
そこで参考になるサンプルコードを見つけました。
http://mtwestsun.blogspot.jp/2012/06/mypacker.html
しかし、サイトには、
「どうやら展開時にエントリーアドレスを取得する方法が無いと展開して実行できないみたいだ。」
と書いてあります。
どういう意味ですか。
ちなみにこのサイトにあるソースコードはXORでプログラムを実行可能なまま暗号化するプログラムです。
by helloworld1853
13年前
フォーラム: C言語何でも質問掲示板
トピック: EXEとEXEの合体
返信数: 16
閲覧数: 7592

Re: EXEとEXEの合体

すみません。アセンブリコードではなく
アセンブリに対応した機械語です。
by helloworld1853
13年前
フォーラム: C言語何でも質問掲示板
トピック: EXEとEXEの合体
返信数: 16
閲覧数: 7592

Re: EXEとEXEの合体

ということはアセンブリコードをEXEファイルに挿入することはできるということですか。
by helloworld1853
13年前
フォーラム: C言語何でも質問掲示板
トピック: EXEとEXEの合体
返信数: 16
閲覧数: 7592

EXEとEXEの合体

うまく説明できないのですが、
EXEファイルのヘッダなどの余分な箇所を抜いたプログラムコード本体の
機械語だけを抜き出し、
ほかのEXE プログラムの最後のほうに続いている00 00 00 00 ・・・
に上書きし、
実行することは可能ですか。
用はEXEとEXEの合体です。
by helloworld1853
13年前
フォーラム: C言語何でも質問掲示板
トピック: きれいなソースコードの書き方
返信数: 25
閲覧数: 13821

Re: きれいなソースコードの書き方

夏休み中まったくプログラミングができず、ずいぶん間が空いてしまいました。
すみません。

久々に質問しますけど、
クライアント側が一気に400KB送信し、
サーバ側が1KBずつ受信していくと、
無事400KB受信できますか。
それとも1KB受信したところで、
途切れてしまうのでしょうか。
よろしくお願いします。
by helloworld1853
13年前
フォーラム: C言語何でも質問掲示板
トピック: きれいなソースコードの書き方
返信数: 25
閲覧数: 13821

Re: きれいなソースコードの書き方

ありがとうございます。
今直し始めて思ったのですが、
たとえば
定義と同時に
文字列を0に自動的に初期化
してくれるSCHARという
自作の型を作ることはできますか。
by helloworld1853
13年前
フォーラム: C言語何でも質問掲示板
トピック: きれいなソースコードの書き方
返信数: 25
閲覧数: 13821

Re: きれいなソースコードの書き方

http://s1.etowns.server-on.net/~yamada_ ... client.cpp
http://s1.etowns.server-on.net/~yamada_ ... server.cpp

まだまだ未完成ですけど
プログラムの流れを大幅に改善し、
なにより関数化できたので、
のせておきます。
関数化は不慣れなので、
少しおかしいところがあるかもしれません。
残りの名前の改善を
しています。
by helloworld1853
13年前
フォーラム: C言語何でも質問掲示板
トピック: きれいなソースコードの書き方
返信数: 25
閲覧数: 13821

Re: きれいなソースコードの書き方

少し出かけていて
返事が遅れました。
いま直しています。
ここで疑問に思ったのですが、
たとえばmain関数でソケットを作ったとして、
そのソケットをほかの関数の引数に渡し、
その関数でソケットをclosesocketを使って
閉じるということはできますか。
by helloworld1853
13年前
フォーラム: C言語何でも質問掲示板
トピック: YouTube
返信数: 4
閲覧数: 2758

Re: YouTube

エラーの際、
どんなメッセージが出ますか?
500エラーならば、
http://csqa.kddi.com/posts/view/qid/1203200048
のサイトが参考になりますけど・・・
by helloworld1853
13年前
フォーラム: C言語何でも質問掲示板
トピック: TCPにおいてエラー10038が発生してしまう。
返信数: 45
閲覧数: 33260

Re: TCPにおいてエラー10038が発生してしまう。

ありがとうございます。
通信系の問題は解決されたので、
ここで終わりにしたいと思います。

しかし、"ソースコードの美しさ"について問題が多いので、
http://dixq.net/forum/viewtopic.php?f=3&t=11189
ここにて先ほどのソースコードを
中心に "きれいなソースコードの書き方" について
質問させていただきました。
よろしければこちらもお願いします。

回答してくださった皆様ありがとうございました。
by helloworld1853
13年前
フォーラム: C言語何でも質問掲示板
トピック: きれいなソースコードの書き方
返信数: 25
閲覧数: 13821

きれいなソースコードの書き方

TCPでチャットするプログラムを作っていて http://dixq.net/forum/viewtopic.php?f=3&t=11115&start=30#p90112 にて質問したものです。 このプログラムはcrypt関数で通信が暗号化され、 送信、受信データ先頭10バイトに 通信データのサイズが 0000000014 というふうに埋め込まれています。 このデータを使ってパケットが 分割されても 対応できるようになっています。 何とか完成したのですが、 ソースコードが読みにくいです。 以下がソースコードです。 http://s1.etowns.server-on.net/~yamada_m...
by helloworld1853
13年前
フォーラム: C言語何でも質問掲示板
トピック: TCPにおいてエラー10038が発生してしまう。
返信数: 45
閲覧数: 33260

Re: TCPにおいてエラー10038が発生してしまう。

softyaさんありがとうございます。
http://s1.etowns.server-on.net/~yamada_ ... client.cpp
http://s1.etowns.server-on.net/~yamada_ ... server.cpp
完成しました。
動作確認しました。
ソースコードが汚い以外に
問題点はないと思います。
きれいなソースコードについて質問したいのですが、
新しくトピックをたてたほうがいいでしょうか。(深い内容になりそうなので、)
by helloworld1853
13年前
フォーラム: C言語何でも質問掲示板
トピック: TCPにおいてエラー10038が発生してしまう。
返信数: 45
閲覧数: 33260

Re: TCPにおいてエラー10038が発生してしまう。

sprintf(sendbuff,"%10.d%s",size += 10, command);

とすると、sendbuffには
" 14test"
と代入されます。
"000014test"
のように代入されてほしかったのですが、
なぜ空白なのでしょうか。
by helloworld1853
13年前
フォーラム: C言語何でも質問掲示板
トピック: TCPにおいてエラー10038が発生してしまう。
返信数: 45
閲覧数: 33260

Re: TCPにおいてエラー10038が発生してしまう。

>ヒントは各桁は10倍づつである。って事です。
の意味がようやくわかりました。
前のコメントは無視してください。
あとこれも今気づいたのですが、
変数が 例えば001でも1でもプログラムには影響がないのでしょうか。
001 を二進数にすると
0000・・・0001 で、
1も
0000・・・0001
で同じなので・・・
by helloworld1853
13年前
フォーラム: C言語何でも質問掲示板
トピック: TCPにおいてエラー10038が発生してしまう。
返信数: 45
閲覧数: 33260

Re: TCPにおいてエラー10038が発生してしまう。

データの先頭からデータサイズを受け取る 関数を新しく作り直しました。 やはり眠い状態で作った昨日の関数とは 質が違います。 テスト済みで、我ながらよくやったと思っています。 ところでchar型において 0,1,2,3,4,5, という数字は 16進数で 0x30,0x31,0x32,0x33,0x34,0x35 ですか。 #include <stdio.h> #include <string.h> #define BUFF_SIZE 1024 int TAKE_SIZE_FROM_DATA(char data[BUFF_SIZE]) { char real_data[11]; int coun...
by helloworld1853
13年前
フォーラム: C言語何でも質問掲示板
トピック: TCPにおいてエラー10038が発生してしまう。
返信数: 45
閲覧数: 33260

Re: TCPにおいてエラー10038が発生してしまう。

すみません。
コメント入れ忘れていましたし、
ソースもぐちゃぐちゃでした。
今改善したので
お願いします。

では また 明日。
by helloworld1853
13年前
フォーラム: C言語何でも質問掲示板
トピック: TCPにおいてエラー10038が発生してしまう。
返信数: 45
閲覧数: 33260

Re: TCPにおいてエラー10038が発生してしまう。

http://s1.etowns.server-on.net/~yamada_mama_papa/V2-client.cpp 新しく関数を追加しました。 took_size関数は 先頭にあるサイズデータを 習得します。 先頭には "0000012345" というように10進数で 10文字数字が入っています。 これを数値に変えるのが took_size関数です。 正直自信がないので見ていただきたいです。 あと未完成ながらも my_recv関数も追加しました。 引数はrecv関数と同じで、 分割されたデータに対応できます。 こちらも見ていただけると幸いです。 ソースコードが汚いですが、 よろしくお...
by helloworld1853
13年前
フォーラム: C言語何でも質問掲示板
トピック: TCPにおいてエラー10038が発生してしまう。
返信数: 45
閲覧数: 33260

Re: TCPにおいてエラー10038が発生してしまう。

1)実際の問題点の確認。
データの大きさが1024だと
メモリ違反を起こしてしまう
原因char output[1024];は
output[0]からoutput[1023]
までしかない。
そこに
output[1024] = '\0';
と代入するとメモリ違反が起きる。

2)推測される問題点を修正。
scanf_sのあとに
strlenでサイズ特定
し、send関数に渡す
1024を越えることがなくなる

3)治ったことを確認
確認しました。

送られてきたデータが
分割されたデータの一部なのか、
それで全部のデータなのか判断する方法はありますか。
by helloworld1853
13年前
フォーラム: C言語何でも質問掲示板
トピック: TCPにおいてエラー10038が発生してしまう。
返信数: 45
閲覧数: 33260

Re: TCPにおいてエラー10038が発生してしまう。

sendするときに
どんなときでも1024B
送信してしまう問題を解決し忘れていました。
これを解決したら直りました。

あと分割対応recv関数を
作っているのですが、
0になるまでループを続けるということは
sendも繰り返さなくてはならないのですか。
by helloworld1853
13年前
フォーラム: C言語何でも質問掲示板
トピック: TCPにおいてエラー10038が発生してしまう。
返信数: 45
閲覧数: 33260

Re: TCPにおいてエラー10038が発生してしまう。

ところで話が変わりますが、
outputメモリが破壊される
問題はどこのコードが原因ですか。
by helloworld1853
13年前
フォーラム: C言語何でも質問掲示板
トピック: TCPにおいてエラー10038が発生してしまう。
返信数: 45
閲覧数: 33260

Re: TCPにおいてエラー10038が発生してしまう。

パケットが分割して
送られてきても大丈夫な関数の
ソースコードをお願いします。
by helloworld1853
13年前
フォーラム: C言語何でも質問掲示板
トピック: TCPにおいてエラー10038が発生してしまう。
返信数: 45
閲覧数: 33260

Re: TCPにおいてエラー10038が発生してしまう。

これは、lenが0だった場合に
問題が起こるという意味ですか。
あまり知識がないゆえに
想像ができません。
たとえをご教授してください。
(可能であればlenが***のときに+++エラーが起きるというように・・・)
by helloworld1853
13年前
フォーラム: C言語何でも質問掲示板
トピック: TCPにおいてエラー10038が発生してしまう。
返信数: 45
閲覧数: 33260

Re: TCPにおいてエラー10038が発生してしまう。

output[len] = '\0'; を修正しました。 ようやく完成しました。 動作確認済みです。(windows 7 64bit) 皆様ありがとうございました。 クライアントのソースコード #pragma comment(lib,"wsock32.lib") #include <stdio.h> #include <winsock2.h> #define PORT 80 #define BUFF_SIZE 1024 int crypt(char buff[BUFF_SIZE]) { int key = 1853; size_t i; size_t buffsize = strlen(buf...
by helloworld1853
13年前
フォーラム: C言語何でも質問掲示板
トピック: TCPにおいてエラー10038が発生してしまう。
返信数: 45
閲覧数: 33260

Re: TCPにおいてエラー10038が発生してしまう。

recv関数の第三引数あたりが
怪しいと思いましたがよくわかりません。
どこが怪しいと思いますか。
by helloworld1853
13年前
フォーラム: C言語何でも質問掲示板
トピック: TCPにおいてエラー10038が発生してしまう。
返信数: 45
閲覧数: 33260

Re: TCPにおいてエラー10038が発生してしまう。

いい忘れてしまいましたが、
サーバ側がソケットを閉じてしまう問題は修正しました。
by helloworld1853
13年前
フォーラム: C言語何でも質問掲示板
トピック: TCPにおいてエラー10038が発生してしまう。
返信数: 45
閲覧数: 33260

Re: TCPにおいてエラー10038が発生してしまう。

softyaさん、ありがとうございます。 無事動作しました。 やはり文字列、ポインタに対しての 理解が浅かったのが原因のような気がします。 あと puts("connect_success"); scanf_s("%s",&command); ここの文だけ二つの処理をしてしまうという 可読性の低さもあまりよくなかったなと いまさらながら気づいています。 以後気をつけます。 最後に このプログラムのクライアントはexitと 入力されたら停止するのですが、 exitと入力すると、 Run-Time Check Failure #2 - Stack around the variable 'outp...
by helloworld1853
13年前
フォーラム: C言語何でも質問掲示板
トピック: TCPにおいてエラー10038が発生してしまう。
返信数: 45
閲覧数: 33260

Re: TCPにおいてエラー10038が発生してしまう。

server側を192.168.1.3 (ipはipconfigでチェックしました。) に設置し、 client側を192.168.1.2 (僕のです。) に設置しました。 両プログラムを実行したところ 実行結果は クライアント側: connect_success test send_success サーバ側は: ready! でとまってしまいます。 さっきと同じでした。 winsharkで調べて結果を保存したものをアップロードしました。 http://s1.muryo-de.mydns.jp/~yamada_mama_papa/test.pcap 念のため自分のパソコンで海外のサイトの チャ...
by helloworld1853
13年前
フォーラム: C言語何でも質問掲示板
トピック: TCPにおいてエラー10038が発生してしまう。
返信数: 45
閲覧数: 33260

Re: TCPにおいてエラー10038が発生してしまう。

IPアドレスの設定は
"127.0.0.1"
で大丈夫ですか。
by helloworld1853
13年前
フォーラム: C言語何でも質問掲示板
トピック: TCPにおいてエラー10038が発生してしまう。
返信数: 45
閲覧数: 33260

Re: TCPにおいてエラー10038が発生してしまう。

コントロールパネルにてV2-server.exeに関してのファイアーウォール(ホーム/社内 プライベート)
の解除を確認してみました。今はパブリックまで解除する必要がないと思っているので
パブリックは解除していません。
セキュリティソフトも二年近く使っていません。マルウェアが原因の可能性もあるので
今セキュリティソフトでフルスキャンしています。
実は説明し忘れていましたが
うちはひとつのルータに対して二つのパソコンが接続されています。
一番目の接続には母のパソコンが・・・
二番目には僕のが接続されています。
あと環境はwindows 7 64bitです。
by helloworld1853
13年前
フォーラム: C言語何でも質問掲示板
トピック: TCPにおいてエラー10038が発生してしまう。
返信数: 45
閲覧数: 33260

Re: TCPにおいてエラー10038が発生してしまう。

softyaさん が実行した結果、
最初の通信ができたようですが、
僕のでは最初の通信ですらできません。
ポート番号をほかのやつでも試してみましたがうまくいきません。
環境が原因でしょうか。
(ちなみにサーバ側のソースコードにcrypt関数がないのを修正してコンパイルしました。)
by helloworld1853
13年前
フォーラム: C言語何でも質問掲示板
トピック: TCPにおいてエラー10038が発生してしまう。
返信数: 45
閲覧数: 33260

Re: TCPにおいてエラー10038が発生してしまう。

softyaさん ありがとうございます。

今 改善してみます。

ところで ブラウザはポート80 を使っているのに

なぜ 複数のサイトにアクセスしても webサーバの衝突が起きないのですか。
by helloworld1853
13年前
フォーラム: C言語何でも質問掲示板
トピック: TCPにおいてエラー10038が発生してしまう。
返信数: 45
閲覧数: 33260

Re: TCPにおいてエラー10038が発生してしまう。

softyaさん、みけCATさん ありがとうございます。 最新コードをのせ忘れました。 変更箇所が多いので ここにアップロードしました。 サーバ側 http://s1.muryo-de.mydns.jp/~yamada_mama_papa/V2-server.cpp クライアント側 http://s1.muryo-de.mydns.jp/~yamada_mama_papa/V2-client.cpp みけCATさんのご指摘も改善しました。 実行結果は クライアント側: connect_success test send_success サーバ側は: ready! でとまってしまいます。
by helloworld1853
13年前
フォーラム: C言語何でも質問掲示板
トピック: TCPにおいてエラー10038が発生してしまう。
返信数: 45
閲覧数: 33260

Re: TCPにおいてエラー10038が発生してしまう。

みけCATさん ありがとうございます。

見落としていました。

うまく接続ができましたが

今度は送信ができません。

"aaaa"と入力し、

送信すると、

connect_error:10056と出てきました。

"既に接続済みのソケットに対して接続を要求しました。"

という意味のようです。

なので closesocket(next_socket); や closesocket(sock);

などして解決させました。

しかし、なぜかサーバ側にデータが受信されません。

エラーは発生していません。

recv関数が受信されない状態ってたとえばどういう状況があるのですか。
by helloworld1853
13年前
フォーラム: C言語何でも質問掲示板
トピック: TCPにおいてエラー10038が発生してしまう。
返信数: 45
閲覧数: 33260

TCPにおいてエラー10038が発生してしまう。

TCPでチャットプログラムを作っています。 送信と受信を交互にやるために ソケットを切断しなければいけないようですが、 タイミングがよくわからないので ここのサイトを参考に http://intuniv.cs.shinshu-u.ac.jp/Lecture/NetProg/chapter3/sample.html 作っています。 サーバ、クライアントの順に コンパイルし、実行したところ、 "recv_error :10038"と表示されます。 "ソケット以外のものに対して操作を実行しようとしました。" という意味らしいです。 原因は何でしょう。 サーバプログラム #pragma comment...
by helloworld1853
13年前
フォーラム: C言語何でも質問掲示板
トピック: チャットプログラムを作っているのですが、躓いています。
返信数: 15
閲覧数: 5260

Re: チャットプログラムを作っているのですが、躓いています。

ボタン押し忘れました。

いろいろと ぼーとしていますが これからもよろしくお願いします。
by helloworld1853
13年前
フォーラム: C言語何でも質問掲示板
トピック: チャットプログラムを作っているのですが、躓いています。
返信数: 15
閲覧数: 5260

Re: チャットプログラムを作っているのですが、躓いています。

その程度なのですね。

わかりました。ありがとうございます。

これで一通りの疑問は解決しました。

softyaさん、Dixqさん ありがとうございます。
by helloworld1853
13年前
フォーラム: C言語何でも質問掲示板
トピック: チャットプログラムを作っているのですが、躓いています。
返信数: 15
閲覧数: 5260

Re: チャットプログラムを作っているのですが、躓いています。

シャットダウンすることによって通信量が増えるということはありませんか。
by helloworld1853
13年前
フォーラム: C言語何でも質問掲示板
トピック: チャットプログラムを作っているのですが、躓いています。
返信数: 15
閲覧数: 5260

Re: チャットプログラムを作っているのですが、躓いています。

設計上毎回shutdownするのは

あまり好ましくありません。

この問題を回避する方法はありませんか。
by helloworld1853
13年前
フォーラム: C言語何でも質問掲示板
トピック: チャットプログラムを作っているのですが、躓いています。
返信数: 15
閲覧数: 5260

Re: チャットプログラムを作っているのですが、躓いています。

説明が不十分だったので 説明します。

チャット プログラムは

TCP で クライアントとサーバがあり、

クライアントとサーバとの間で接続が確立できたら

チャットがスタートします。

クライアントが文字列を送信したら

サーバ側が受信して今度はサーバ側が文字列を送信し、

クライアント側が受信する・・・を繰り返します。

このまま同じsocketを使用してプログラムを作るのですが、

ここまでで注意することはありませんか。
by helloworld1853
13年前
フォーラム: C言語何でも質問掲示板
トピック: チャットプログラムを作っているのですが、躓いています。
返信数: 15
閲覧数: 5260

Re: チャットプログラムを作っているのですが、躓いています。

どんなかんじで分けるのでしょうか。

connect関数からsocketが得られるのですが、

このsocketを別のsocketに代入して
(たとえば、socket=socket_recv というように)

使えばいいのでしょうか。

それとも何か別の処理をしなければならないのでしょうか。
by helloworld1853
13年前
フォーラム: C言語何でも質問掲示板
トピック: チャットプログラムを作っているのですが、躓いています。
返信数: 15
閲覧数: 5260

Re: チャットプログラムを作っているのですが、躓いています。

ありがとうございます。

http://homepage1.nifty.com/toshio-k/prog/c/string.html

ここのサイトを見て勉強します。
(ほかにもここのサイトがいいよ というのがありましたら お願いします。)

最後に 受信用のsocketと送信用のsocketを一緒に使っても

大丈夫なのでしょうか。
by helloworld1853
13年前
フォーラム: C言語何でも質問掲示板
トピック: チャットプログラムを作っているのですが、躓いています。
返信数: 15
閲覧数: 5260

チャットプログラムを作っているのですが、躓いています。

チャット(ジョーク)プログラムを作っているのですが、 ある箇所で躓いています。 以下がソースコードです。 余計な箇所は省略しました。 #pragma comment(lib, "wsock32.lib") #include <stdio.h> #include <winsock2.h> #define PORT 80 #define BUFF_SIZE 1024 int crypt(char buff[BUFF_SIZE]) { int key = 1853; size_t i; for(i=0;i<strlen(buff);i++) { buff[i] ^= key; } return 0;...
by helloworld1853
13年前
フォーラム: C言語何でも質問掲示板
トピック: なぜエラーなのか。
返信数: 5
閲覧数: 2593

Re: なぜエラーなのか。

>それとCドライブ直下にファイル書くのはWindws7/Vistaが制限していはず・・・。

これが原因だったようです。

制限されていたのでfopenが失敗し、

fwriteが失敗したという感じでした。

>確か前々から注意しているはずですがバイナリデータで文字列関数のstrlenを使うのは止めて下さい。

そうでしたね。今回の場合はsizeofでした。

どうしてもstrlenを使う癖があったので注意します。

回答してくださってありがとうございます。
by helloworld1853
13年前
フォーラム: C言語何でも質問掲示板
トピック: なぜエラーなのか。
返信数: 5
閲覧数: 2593

なぜエラーなのか。

あるプログラムを作っているのですが、 fwriteで致命的なエラーが起きます。 そのプログラムはあまりにも長く解読が困難なので、 大幅に省略しました。 なぜ動作しないのでしょうか。 回答お願いします。 #include<stdio.h> #include<string.h> FILE *fp_exe; char body_buff_exe[] = "MZ"; int Mysearch_exe() { fwrite( body_buff_exe, sizeof( char ), strlen( body_buff_exe ), fp_exe ); fclose(fp_exe); return 0...
by helloworld1853
13年前
フォーラム: C言語何でも質問掲示板
トピック: メッセージボックスを出すと同時にエラー音を出す。
返信数: 5
閲覧数: 3163

Re: メッセージボックスを出すと同時にエラー音を出す。

ありがとうございます。

少し難しいですががんばります。
by helloworld1853
13年前
フォーラム: C言語何でも質問掲示板
トピック: メッセージボックスを出すと同時にエラー音を出す。
返信数: 5
閲覧数: 3163

Re: メッセージボックスを出すと同時にエラー音を出す。

ISLeさん、softya(ソフト屋)さん

ありがとうございます。

僕が出したかったのはイベントサウンドでした。(今までこれをなんと呼ぶのかわからなかったので説明が不足気味になりました。)

MB_ICONASTERISK

を追加して解決しました。

最後に質問したいのですが

messageboxは一度にひとつしか出せませんよね。

ジョークプログラムを作っているので

最低でも二つぐらい出したいのですが

なにかよい案はありませんか。
by helloworld1853
13年前
フォーラム: C言語何でも質問掲示板
トピック: メッセージボックスを出すと同時にエラー音を出す。
返信数: 5
閲覧数: 3163

メッセージボックスを出すと同時にエラー音を出す。

メッセージボックスを出すと同時に

エラー音を出したいです。

いまBeep関数を使っているのですが、

この方法だとずれが生じてしまいます。

この少しの間が気になります。

何かよい方法はあるでしょうか。

よろしくお願いします。
by helloworld1853
13年前
フォーラム: C言語何でも質問掲示板
トピック: c言語をアセンブルに変換する方法
返信数: 16
閲覧数: 8993

Re: c言語をアセンブルに変換する方法

あまり方向性が決まっていなく

技術的にもまだ未熟なので

「デバッガによるx86プログラム解析入門」

を熟読し、また出直したいです。

とりあえず今回で分かったことは
・難読化は思ったより難しい
・リリースビルドすると無意味な処理は全て整理されてなくなること(初めて知ったのは僕だけですか?)
・難読化はAPIが重要

大体の事が決まり、技術的にもだいぶ理解できるようになったら

また質問します。

皆様ありがとうございました。
by helloworld1853
13年前
フォーラム: C言語何でも質問掲示板
トピック: c言語をアセンブルに変換する方法
返信数: 16
閲覧数: 8993

Re: c言語をアセンブルに変換する方法

たとえばAPI周辺の処理を隠すならば難易度は高いですか?
by helloworld1853
13年前
フォーラム: C言語何でも質問掲示板
トピック: c言語をアセンブルに変換する方法
返信数: 16
閲覧数: 8993

Re: c言語をアセンブルに変換する方法

よい案はほかにありませんか。
by helloworld1853
13年前
フォーラム: C言語何でも質問掲示板
トピック: c言語をアセンブルに変換する方法
返信数: 16
閲覧数: 8993

Re: c言語をアセンブルに変換する方法

>既に当初のものと違いISLeさん案に成っている気がしますが・・・。

最初からこの案でした。

>【さらに補足】
>試してないですがVirtualProtectを静的領域に行えるかも知れません。出来てもウィルスと誤認されないかは自信ありません。
>あとデータ実行防止 (DEP)と言う機能がXP SP2から追加されているらしいのでハードウェアが対応していると、それにも対処が必要です。


難しいですね。

では、たとえばgoto文を入れまくったり

意味のないfor文,if文を入れまくったりするのはどうでしょう。

文字通り難読化されそうですが・・・
by helloworld1853
13年前
フォーラム: C言語何でも質問掲示板
トピック: c言語をアセンブルに変換する方法
返信数: 16
閲覧数: 8993

Re: c言語をアセンブルに変換する方法

みなさま 返信ありがとうございます。 僕の説明が足りないような気がしたので 僕が考えていた難読化ソフトの流れを説明します。 プログラムを読み込む       ↓ なんらかの方法で実行可能な機械語を取り出す       ↓ コンパイルすると難読化するであろうソースコードを出力する あとこのプログラムが出力するソースコードの形式を 下にのせておきます。 皆様には ・このプログラムは実現可能か。 ・実現できたとして難易度は高いか。 ・出力したソースコードをコンパイルすると難読化されているかどうか。 をお答えいただきたいです。 #include <windows.h> #include <stdio....
by helloworld1853
13年前
フォーラム: C言語何でも質問掲示板
トピック: c言語をアセンブルに変換する方法
返信数: 16
閲覧数: 8993

Re: c言語をアセンブルに変換する方法

プログラムを難読化するソフトを少し興味があって作ろうとしているのですが、 普通の方法で難読化するとPEヘッダを収集したりしていろいろと難易度が高そうだったので 僕にも簡単に難読化できる方法を考えていたところ、 http://mimumimu.net/blog/2011/11/17/c%E3%82%B3%E3%83%BC%E3%83%89%E4%B8%AD%E3%81%AB%E3%83%9E%E3%82%B7%E3%83%B3%E8%AA%9E%E3%82%92%E5%9F%8B%E3%82%81%E8%BE%BC%E3%82%93%E3%81%A7%E5%AE%9F%E8%A1%8C%E3%8...
by helloworld1853
13年前
フォーラム: C言語何でも質問掲示板
トピック: c言語をアセンブルに変換する方法
返信数: 16
閲覧数: 8993

c言語をアセンブルに変換する方法

c言語のソースコードをアセンブルに変換し,

インラインでc言語のソースコード中に埋め込みたいのですが

なかなかうまくいきません。

gcc -S で出てきたソースコードは余計?なものが付属してしまい

コンパイルしようとしたらエラーが出まくりました。

純粋?なアセンブルコードだけを出す方法はありませんでしょうか。
by helloworld1853
13年前
フォーラム: C言語何でも質問掲示板
トピック: 改行判定につまづいている
返信数: 90
閲覧数: 32005

Re: 改行判定につまづいている

長い間ありがとうございます。

とりあえずプログラムも動作したので

ここで終わりにしたいと思います。

本当にありがとうございました。
by helloworld1853
13年前
フォーラム: C言語何でも質問掲示板
トピック: 改行判定につまづいている
返信数: 90
閲覧数: 32005

Re: 改行判定につまづいている

風邪を引いてしまいまして だいぶ期間があきましたが、 完成しました。 最近風邪がはやっているようなので皆様もお気をつけてください。 さて、softyaさん、へにっくすさんのアドバイスをこのプログラムに生かさせていただきました。 ボディ部が0バイト、1バイトのページとindex.htmlにおいて動作確認済みです。 #pragma comment(lib, "ws2_32.lib") #include <stdio.h> #include <winsock2.h> #include <windows.h> #define BUF_SIZE (256) int recvcounter; int re...
by helloworld1853
13年前
フォーラム: C言語何でも質問掲示板
トピック: 改行判定につまづいている
返信数: 90
閲覧数: 32005

Re: 改行判定につまづいている

まったく関係ないし どうでもいい話ですが

最新記事を僕が書いたのですが

なぜかsoftyaさんのままになっています。

phpにあまり詳しくないのですがたぶんバグだと思います。

たぶんこのコメントをのせたら直ると思います。

なのでこのコメントを無視してください。
by helloworld1853
13年前
フォーラム: C言語何でも質問掲示板
トピック: 改行判定につまづいている
返信数: 90
閲覧数: 32005

Re: 改行判定につまづいている

-----------削除しました。-----------
by helloworld1853
13年前
フォーラム: C言語何でも質問掲示板
トピック: 改行判定につまづいている
返信数: 90
閲覧数: 32005

Re: 改行判定につまづいている

動作結果はバッチしだと思います。 WinSock初期化成功 send: 73 http recv data ============================= 改行判定成功!!! HTTP/1.1 200 OK Date: Sun, 03 Jun 2012 13:50:00 GMT Server: Apache/1.3.33 (Unix) (Vine/Linux) mod_throttle/3.1.2 mod_layout/3.2 mod_gzip/1.3.26.1a mod_ ssl/2.8.22 OpenSSL/0.9.7d X-Powered-By: ModLayout/3.2 ...
by helloworld1853
13年前
フォーラム: C言語何でも質問掲示板
トピック: 改行判定につまづいている
返信数: 90
閲覧数: 32005

Re: 改行判定につまづいている

最終ソースコードです。 動作確認済み #pragma comment(lib, "ws2_32.lib") #include <stdio.h> #include <winsock2.h> #include <windows.h> #define BUF_SIZE (256) int recvcounter; int recvsize; int headercounter=0;//何度もループさせることが予想されるのでheadercounterを設置 //headercounterはMYroopに関係なく動作するのでMYroopの外に書く int headercounter_MYsearch;...
by helloworld1853
13年前
フォーラム: C言語何でも質問掲示板
トピック: 改行判定につまづいている
返信数: 90
閲覧数: 32005

Re: 改行判定につまづいている

あとはreal_header_buffの修正ですよね。

ほかにもあるのならばコメントお願いします。

修正した後、ソースコードをすべて載せます。
by helloworld1853
13年前
フォーラム: C言語何でも質問掲示板
トピック: 改行判定につまづいている
返信数: 90
閲覧数: 32005

Re: 改行判定につまづいている

>MysearchとMYroopをセットにできたら、もう一度ソースを掲示した方がよいと思いますよ。

207行目のMysearch();

を205行目MYroopの直後に移動しただけで修正が終わってしまいました。(これはセットしたといいますか。)
by helloworld1853
13年前
フォーラム: C言語何でも質問掲示板
トピック: 【雑談】と言うかテストのお願い。【gzipで高速化したよ】
返信数: 23
閲覧数: 11003

Re: 【雑談】と言うかテストのお願い。

こんばんは、

OS: Ubuntu 11.10 Linux (外付けHDDでブート)
CPU: Intel Core i5
RAM: 2GB RAM
Browser: IChrome 18.0.1025.168
Network: 有線 光

・接続直後で5秒以内に表示されるか。
・「発売日リスト」の画面(起動時の画面)でリストはスムーズにスクロールするか?
・「発売日リスト」の画面でページを切り替えた場合は数秒で切り替わるか?
・「発売日」と【作者・キーワード】はボタンでちゃんと切り替わるか?

すべて良好でスムーズでした。

ページ切り替えは一秒以内で、接続直後も一秒ちょっとでした。
by helloworld1853
13年前
フォーラム: C言語何でも質問掲示板
トピック: 改行判定につまづいている
返信数: 90
閲覧数: 32005

Re: 改行判定につまづいている

たとえば

header_buffから範囲を指定して

printfで表示できるようにする関数はありますか。
by helloworld1853
13年前
フォーラム: C言語何でも質問掲示板
トピック: 改行判定につまづいている
返信数: 90
閲覧数: 32005

Re: 改行判定につまづいている

ソースコードです。 新たに int header_buff_size = sizeof(header_buff); を int header_buff_size = strlen(header_buff); に変更しました。 #pragma comment(lib, "ws2_32.lib") #include <stdio.h> #include <winsock2.h> #include <windows.h> #define BUF_SIZE (256) int recvcounter; int recvsize; int headercounter=0;//何度もループさせることが予想...
by helloworld1853
13年前
フォーラム: C言語何でも質問掲示板
トピック: 改行判定につまづいている
返信数: 90
閲覧数: 32005

Re: 改行判定につまづいている

関数を作りました。 この関数は空行を探します。 int Mysearch() { int headercounter_MYsearch; int header_buff_size = sizeof(header_buff); for(headercounter_MYsearch = 0;headercounter_MYsearch<=header_buff_size;++headercounter_MYsearch) { if(header_buff[headercounter_MYsearch]==0x0D)//空行判定(\r) { if(header_buff[headercounter_...
by helloworld1853
13年前
フォーラム: C言語何でも質問掲示板
トピック: 改行判定につまづいている
返信数: 90
閲覧数: 32005

Re: 改行判定につまづいている

int recvsize;//送信するときも受信するときも変数nを使うとまずい気がするので設置

というグローバル変数を設置し,

recvsize = recv( sock, buf,BUF_SIZE-1, 0 );//nの代わりにrecvsizeを設置

MYroop内のループを

for(recvcounter=0;recvcounter<recvsize ;++recvcounter,++headercounter)

に変更しました。
by helloworld1853
13年前
フォーラム: C言語何でも質問掲示板
トピック: 改行判定につまづいている
返信数: 90
閲覧数: 32005

Re: 改行判定につまづいている

[訂正]正しく動作した というのはとんでもない見間違いでした。 過去3件のとんでもない僕のコメントは水に流してください。 結果を確認したところrecvcounterがおかしいことに気づきました。 早速 for(recvcounter=0;recvcounter<BUF_SIZE-1 ;++recvcounter,++headercounter)//何度もループさせることが予想されるのでheadercounterを設置 にソースコードを直し、 動作をチェックしました。 結果を下に残します。 WinSock初期化成功 send: 73 http recv data ================...
by helloworld1853
13年前
フォーラム: C言語何でも質問掲示板
トピック: 改行判定につまづいている
返信数: 90
閲覧数: 32005

Re: 改行判定につまづいている

ありがとうございます。

n = recv( sock, buf, sizeof(buf)-1, 0 );



n = recv( sock, buf, sizeof(buf), 0 );

になおした結果正しく動作しました。

これであっていますか。

ちなみにHTTP/1.1の後は

s1.muryo.etowns.net GET /~yamada_mama_papa/index.html HTTP/1.0 \nHost: s1.muryo.etowns.net \n \n

が表示されます。
by helloworld1853
13年前
フォーラム: C言語何でも質問掲示板
トピック: 改行判定につまづいている
返信数: 90
閲覧数: 32005

Re: 改行判定につまづいている

見当違いかもしれませんが

何かがオーバーフロー

したと思いました。
by helloworld1853
13年前
フォーラム: C言語何でも質問掲示板
トピック: 改行判定につまづいている
返信数: 90
閲覧数: 32005

Re: 改行判定につまづいている

へにっくすさん すみません。 回答し忘れました。 >ヒントを言うと、recvcounterはbufのサイズ分なのだから、0に初期化するところがなければなりません。どこでしなければならないか? for(;recvcounter!=sizeof(buf);++recvcounter,++headercounter)//何度もループさせることが予想されるのでheadercounterを設置 を for(recvcounter=0;recvcounter!=sizeof(buf);++recvcounter,++headercounter)//何度もループさせることが予想されるのでheadercoun...
by helloworld1853
13年前
フォーラム: C言語何でも質問掲示板
トピック: 改行判定につまづいている
返信数: 90
閲覧数: 32005

Re: 改行判定につまづいている

softyaさん、へにっくすさん ありがとうございます。 ちなみに http://s1.muryo-de.mydns.jp/~yamada_mama_papa/source.cpp は最新ではありません。 このソースコードは\r\n\r\nが256Bをまたがった場合の対策を自分なりに作ったものです。 しかし、将来実装しなければいけないものなのでこちらのソースコードも 時間があればもう少し修正します。 さて結果なのです。 softyaさんがおっしゃった表示方法とは少し違いますが 結果を表示します。 左からheader_buff[headercounter],headercounter,heade...
by helloworld1853
13年前
フォーラム: C言語何でも質問掲示板
トピック: 改行判定につまづいている
返信数: 90
閲覧数: 32005

Re: 改行判定につまづいている

>recvbufのポインタ値が不正って事です。正常なアドレスを指していませんよね。

これが原因でしょうか。

正直recvcounterとheadercounterがうまくデバッグできないので原因がよくわかりませんけど・・・

(recvcounterとheadercounterがともにずっと0です。

たぶんうまくデバッグできなかったんだろうと思いました。

なので

printf("%d\n"recvcounter);

などの処理を追加し、

確かめたところ正常な動作をしていました。少なくとも僕が見た感じでは・・・)
by helloworld1853
13年前
フォーラム: C言語何でも質問掲示板
トピック: 改行判定につまづいている
返信数: 90
閲覧数: 32005

Re: 改行判定につまづいている

すみません。

気なっていたので・・・

最新のソースコードは

if(recvbuf[recvcounter]==0x0D)//空行判定(\r)
if(recvbuf[recvcounter+1]==0x0D)//空行判定(\n)
if(recvbuf[recvcounter+2]==0x0D)//空行判定(\r)
if(recvbuf[recvcounter+3]==0x0D)//空行判定(\n)

です。これ以外の変更は特にありません。

あと、

recvbuf 0x00000003 <不適切な Ptr> char *

とはどういう意味ですか。
by helloworld1853
13年前
フォーラム: C言語何でも質問掲示板
トピック: 改行判定につまづいている
返信数: 90
閲覧数: 32005

Re: 改行判定につまづいている

if(recvbuf[recvcounter]==0x0D)//空行判定(\r)
if(recvbuf[recvcounter+1]==0x0D)//空行判定(\n)
if(recvbuf[recvcounter+2]==0x0D)//空行判定(\r)
if(recvbuf[recvcounter+3]==0x0D)//空行判定(\n)

にしたほうがよいという意味ですか。
by helloworld1853
13年前
フォーラム: C言語何でも質問掲示板
トピック: 改行判定につまづいている
返信数: 90
閲覧数: 32005

Re: 改行判定につまづいている

>あと読み込みって8バイトですか?本当に?

7バイトでした。

あと

WSAStartup(MAKEWORD(2,0), &wsadata);

WSAStartup(MAKEWORD(1,1), &wsadata);

どちらのほうがいいのでしょうか。

より多くのパソコンに対応できるほうがいいです。

この問題の原因ですが、

if(recvbuf[recvcounter+3]==0x0A)

らへんに問題があると思いました。

たとえばrecvcounterが5だったら

recvbuf[8]という存在しない配列を

判定することになり

プログラムがおかしくなると

思いました。
by helloworld1853
13年前
フォーラム: C言語何でも質問掲示板
トピック: 改行判定につまづいている
返信数: 90
閲覧数: 32005

Re: 改行判定につまづいている

デバッグした結果です。 headercounter 0 int recvcounter 0 int recvbuf 0x0018fd9c "HTTP/1." char * header_buff 0x013b3380 "" char [4096] header_buff 0x013b3380 "H" char [4096] header_buff 0x013b3380 "HT" char [4096] header_buff 0x013b3380 "HTT" char [4096] header_buff 0x013b3380 "HTTP" char [4096] header_buff 0x...
by helloworld1853
13年前
フォーラム: C言語何でも質問掲示板
トピック: 改行判定につまづいている
返信数: 90
閲覧数: 32005

Re: 改行判定につまづいている

softyaさんがおっしゃったとおりに

修正し、実行したところ

HTTP/1.

とだけ表示されます。

もう少し調べてみないとわかりませんが

MYroopに原因があるようです。

原因がわかる方お願いします。

また、なぜサイズを変えただけでプログラムの反応がこんなにも違うのですか。
by helloworld1853
13年前
フォーラム: C言語何でも質問掲示板
トピック: 改行判定につまづいている
返信数: 90
閲覧数: 32005

Re: 改行判定につまづいている

スルーしたのではなく

\r\n\r\nの問題も同時に解決できるのではないかと考え修正を加えてしまっただけでした。

認識が甘かったです。
by helloworld1853
13年前
フォーラム: C言語何でも質問掲示板
トピック: 改行判定につまづいている
返信数: 90
閲覧数: 32005

Re: 改行判定につまづいている

http://s1.muryo-de.mydns.jp/~yamada_mam ... source.cpp

ここにソースコードをのせておきます。

bufをまたがる\r\n\r\nの問題を解決しようとしましたが

大幅な変更を加えたせいか、うまく動作しません。

自分なりにデバッグしたところ、プログラムの設計に原因があるようなので

直します。

なにかアドバイス(もう少しソースコードを整理したほうがよいなど)があれば

お願いします。
by helloworld1853
13年前
フォーラム: C言語何でも質問掲示板
トピック: 改行判定につまづいている
返信数: 90
閲覧数: 32005

Re: 改行判定につまづいている

>1.header_buffにちゃんと累積されない。 設計ミスでした。 空行判定の箇所を以下に変更しました。 if(recvbuf[recvcounter]==0x0D)//空行判定(\r) { if(recvbuf[recvcounter+1]==0x0A)//空行判定(\n) { if(recvbuf[recvcounter+2]==0x0D)//空行判定(\r) { if(recvbuf[recvcounter+3]==0x0A)//空行判定(\n) またヘッダが4096バイトを超えたときのために if(headercounter==4096) { puts("ヘッダが4096バイトを超...
by helloworld1853
13年前
フォーラム: C言語何でも質問掲示板
トピック: 改行判定につまづいている
返信数: 90
閲覧数: 32005

Re: 改行判定につまづいている

コメントをなるべく多くつけました。 流れとしては 256バイトずつ受信し、 MYroopで処理し、 header_buff[headercounter]=recvbuf[recvcounter];でデータを埋め込んでいます。 strcatを使ってのデータの受け渡しをしていません。(一バイトずつ処理しているので・・・) #pragma comment(lib, "ws2_32.lib") #include <stdio.h> #include <winsock2.h> int headercounter=0;//何度もループさせることが予想されるのでheadercounterを設置 //head...
by helloworld1853
13年前
フォーラム: C言語何でも質問掲示板
トピック: 改行判定につまづいている
返信数: 90
閲覧数: 32005

Re: 改行判定につまづいている

直前の命令は
n = recv( sock, buf, sizeof(buf)-1, 0 );
です。

bufが思い通りに使えているかどうかは今チェックしてみます。
by helloworld1853
13年前
フォーラム: C言語何でも質問掲示板
トピック: 改行判定につまづいている
返信数: 90
閲覧数: 32005

Re: 改行判定につまづいている

if ( n <= 0 )

でとまっているのですが

どんな例外が考えられますか。
by helloworld1853
13年前
フォーラム: C言語何でも質問掲示板
トピック: 改行判定につまづいている
返信数: 90
閲覧数: 32005

Re: 改行判定につまづいている

ところで

win32console.exe の 0x76ed15de でハンドルされていない例外が発生しました: 0xC0000005: 場所 0x00386000 に書き込み中にアクセス違反が発生しました。

という表示が出てきたのですがここの情報から原因のコードの箇所を突き止めることはできますか。
by helloworld1853
13年前
フォーラム: C言語何でも質問掲示板
トピック: 改行判定につまづいている
返信数: 90
閲覧数: 32005

Re: 改行判定につまづいている

(1)に対して・・・ はい。bufとheader_buffは別物です。 256Bずつ受信し、そのデータをheader_buffにstrcatを使っていれています。 (2)に対して・・・ いいえ。4096Bでは足りません。画像も受信し、ファイルに保存する予定なので・・・ (3)に対して・・・ すみません。僕が勘違いをしてしまい変なことをしました。 これからは勝手に自分で事柄を思い込まないように心がけます。 (4)に対して・・・ はい。さまざまな機能をつけていく予定です。 (5)に対して・・・ あります。みなさまが投稿してくれたコメントを よく読み、理解していく決意です。 まだまだ未熟ですが、今後...
by helloworld1853
13年前
フォーラム: C言語何でも質問掲示板
トピック: 改行判定につまづいている
返信数: 90
閲覧数: 32005

Re: 改行判定につまづいている

すみません。

全然関係ない話ですけど

"\"を表示させたいけど

"¥"が表示されてしまいます。

どうすれば"\"が表示されますか。

詳細検索ページへ移動する