GETコマンドを送るC言語を作りたいのですが…

フォーラム(掲示板)ルール
フォーラム(掲示板)ルールはこちら  ※コードを貼り付ける場合は [code][/code] で囲って下さい。詳しくはこちら
mm(21)な研究生

GETコマンドを送るC言語を作りたいのですが…

#1

投稿記事 by mm(21)な研究生 » 9年前

はじめまして
C言語はあまりうまくないですが少しずつ勉強していこうと思いますのでどうぞよろしくお願いします。


本題なのですが

現在NiosボードにてRS232Cでつながっているパソコン(A)からC言語のプログラムをコンパイルして、
コンパイルに使ったのと別のパソコン(B)にGETコマンドを送るC言語ファイルを作ろうとしています。
GETコマンドはphpファイルを実行する命令として”GET http://IPアドレス/mm.php”としています。
そこで、C言語ファイルを実行することで
1.GETコマンドを送る(実行)ようにし、
2.そのmm(phpファイル)が実行された結果(”成功”と表示されるだけ)をRS232CでパソコンAに伝えるようにする
といったC言語を作りにはどうしたらよいか教えてください。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 9年前
住所: 東海地方
連絡を取る:

Re: GETコマンドを送るC言語を作りたいのですが…

#2

投稿記事 by softya(ソフト屋) » 9年前

winsockを使ってTCP/IPでHTTPクライアントを作れば良いと思います。
http://www.geekpage.jp/programming/winsock/
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

アバター
みけCAT
記事: 6247
登録日時: 9年前
住所: 千葉県
連絡を取る:

Re: GETコマンドを送るC言語を作りたいのですが…

#3

投稿記事 by みけCAT » 9年前

そのパソコンのOSによると思います。
複雑な問題?マシンの性能を上げてOpenMPで殴ればいい!(死亡フラグ)

mm(21)な研究生

Re: GETコマンドを送るC言語を作りたいのですが…

#4

投稿記事 by mm(21)な研究生 » 9年前

softya(ソフト屋) さん、 みけCATさん
早速返信ありがとうございます。
>>softyaさん
HTTPクライアントですか~
少し勉強してみないとわかりませんが参考にさせていただきます。

>>みけCATさん
私が使っているOSはパソコンA、Bともに”WindowsXP”です。
(NIOSボードはXportを利用して、LANケーブル(TCP/IP)でA、Bとつながっています。)

mm(21)な研究生

Re: GETコマンドを送るC言語を作りたいのですが…

#5

投稿記事 by mm(21)な研究生 » 9年前

追記
今回ファイルをコンパイル、実行するのはSOPC Builder(Nios SDK Shell)です。
ですので成功の有無はSOPC Builder内に表示されるようにしようと考えています。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 9年前
住所: 東海地方
連絡を取る:

Re: GETコマンドを送るC言語を作りたいのですが…

#6

投稿記事 by softya(ソフト屋) » 9年前

NiosのライブラリにTCP/IPの物がないか調べてみてください。
私はあくまでも、XPパソコンが通信するつもりで書いてしまいました。
Niosボード←RS232C→パソコン←LAN→パソコン(PHP)
じゃないんですね?
パソコン←RS232C→Niosボード←LAN→パソコン(PHP)
って事ですよね?

【追記】
それとも
パソコン←RS232C→Niosボード←LAN→Niosボード←RS232C→パソコン
ですか?
接続と通信の詳しい説明をお願いします。

たぶん、ネットワーク・プロトコル・ソフトウェアで良いと思いますが有料だと思います。
http://www.altera.co.jp/products/ip/pro ... stack.html

【追記の追記】
組み込みLinuxをNiosで走らせて、その上で通信すると言う手もあります。
その場合は、Linuxが通信ライブラリを提供してくれます。
お金はかかりませんが、手間と知識はかなり必要です。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

mm(21)な研究生

Re: GETコマンドを送るC言語を作りたいのですが…

#7

投稿記事 by mm(21)な研究生 » 9年前

>>softyaさん
すみません説明不足で(汗
はい、softyaさんが考えてらっしゃるように
パソコンA(C言語をコンパイル,実行)←[RS232C]→Niosボード←[LAN]→パソコンB(phpファイル実行場所)
です。
やはりネットワーク・プロトコル・ソフトウェアといった専用なものを使わないとできないものですかね?

ちなみに嫌味な人からは「簡単に作れるよ、フフンッ」といわれたのですが、これってもしかして簡単なことなのですか?

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 9年前
住所: 東海地方
連絡を取る:

Re: GETコマンドを送るC言語を作りたいのですが…

#8

投稿記事 by softya(ソフト屋) » 9年前

mm(21)な研究生 さんが書きました:>>softyaさん
すみません説明不足で(汗
はい、softyaさんが考えてらっしゃるように
パソコンA(C言語をコンパイル,実行)←[RS232C]→Niosボード←[LAN]→パソコンB(phpファイル実行場所)
です。
やはりネットワーク・プロトコル・ソフトウェアといった専用なものを使わないとできないものですかね?

ちなみに嫌味な人からは「簡単に作れるよ、フフンッ」といわれたのですが、これってもしかして簡単なことなのですか?
その説明で疑問なのは、C言語をコンパイル,実行でパソコン側でコンパイルしてNios側で実行じゃないのですか?
つまりTCP/IP通信をするのは、Nios側で動くプログラムであってパソコンとはRS232Cで通信するだけですよね。

で、その前提として話を進めるとTCP/IPのプロトコル・ライブラリに詳しい人ならオープンソースからコードを引っ張ってきて移植は出来ると思いますが、C言語やTCP/IPのプロトコルに詳しくないのなら大変だと思いますが。
それともネットワーク・プロトコル・ソフトウェアの「NicheStack TCP/IP ネットワーク・スタック – Nios II エディション」がボードの開発環境に付属してたりしてませんか?
それならすぐ使えると思いますがライブラリを初見でいきなり使うのは難しいと思いますよ。私もNiosには詳しくないのでお手伝いできそうにありません。
気になるのは、先程のネットワーク・プロトコル・ソフトウェアのリンク先に書かれているµCLinux (内蔵スタック)とかeCos (内蔵スタック)などでTCP/IPが気軽で無料に使えるのか?とですかね。µCLinuxやeCosが簡単に導入できないと困りますが。それもNiosに詳しくないので良く分かりません。

その嫌味な人に頭をさげるのが一番簡単な解決方法な気もします(知ったかぶりの可能性もありますが)。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

mm(21)な研究生

Re: GETコマンドを送るC言語を作りたいのですが…

#9

投稿記事 by mm(21)な研究生 » 9年前

>>softyaさん
あ、すみません
softyaさんのいうとおりniosボードにて実行されます。

softyaさんがいうところを調べたのですが、どうやら無料ではないようで
またNicheStack TCP/IP ネットワーク・スタック – Nios II エディションも付属してないようです。
私が調べた限りですが(汗
何かとありがとうございました。
また調べてみます・・・。

P.S
なんかもう血迷って下みたいなのを作った作ったところNios Sdk Shell内で「Ta」と表示されました。
バカな私はこれを改良したらできるのかな?っと思ったのですが違いますよね(笑
#include "excalibur.h"
#include "uart.c"

main(void)
{
unsigned char a[100]="get http:// IPアドレス/ ファイル名.php";



na_pio_Xreset->np_piodata =1;

while(1){

putchar_0(&a);
printf("a");

getchar_0(&a);

printf("",a);
}
}

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 9年前
住所: 東海地方
連絡を取る:

Re: GETコマンドを送るC言語を作りたいのですが…

#10

投稿記事 by softya(ソフト屋) » 9年前

そのコードを見るかぎりはRS232Cの通信しか行われないと思います。
つまりLANには接続されません。
色々と怪しいコードなので、まともな結果が表示されないと思います。

putchar_0(&a); USART0に送出?つまりRS232Cへaのアドレスを1文字と出力か?
printf("a"); "a"と言う文字が標準出力へ。標準出力はなにに接続されているか不明。

getchar_0(&a); ターミナルから一文字を得る。

printf("",a); 何も出力されない。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

mm(21)な研究生

Re: GETコマンドを送るC言語を作りたいのですが…

#11

投稿記事 by mm(21)な研究生 » 9年前

>>softyaさん
あ~そうでしたか(汗
まあ何も進んでないってことですねw
自分でもよくわかっていないのでもう少し勉強してみます。
わざわざ返信ありがとうございました。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 9年前
住所: 東海地方
連絡を取る:

Re: GETコマンドを送るC言語を作りたいのですが…

#12

投稿記事 by softya(ソフト屋) » 9年前

あっ、突然理解した!
Xportってこの商品の事ですね?
http://www.lantronix.jp/products/xport.shtml
忘れてましたよ。これのこと。

これだとRS232Cの扱い方でコマンドを送ればGETも出来ると思いますが使ったことがありません。
リンク先にドキュメントがあるので読んでください。一部日本語。
http://www.co-nss.co.jp/download/download-top.html
たしかにこれなら扱い方を理解すれば簡単だと思いますが、実物を使ったことがないので勘で答えてます。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

オオカミ

Re: GETコマンドを送るC言語を作りたいのですが…

#13

投稿記事 by オオカミ » 9年前

ほぼ間違いなく回答に見せかけた自サイトの紹介広告だと思いますので、内容文を削除しました。
( by softya(ソフト屋) )

mm(21)な研究生

Re: GETコマンドを送るC言語を作りたいのですが…

#14

投稿記事 by mm(21)な研究生 » 9年前

どうもです。
少し考えてみてこんなのをつくってみました。

#include "excalibur.h"
#include "uart.c"

main(void)
{
unsigned char a[34]="get http://xxx.xx.xx.xxx/abcd.php";
int i,j;
unsigned char b;

na_pio_Xreset->np_piodata =1;


//getchar_x(&b);//
//putchar_x(b);//
for(i=0;i<33;i++){
putchar_x(a);

}
printf("OK");

for(j=0;j<4;j++){
getchar_x(&a[j]);
putchar_0(a[j]);
printf("ok2");

}
a[4]='\0';

printf("%s",a);


}

ただこれだと”OK”というところまでしか表示されず、肝心なPHPファイルが実行された結果が届きませんでした。
今考えている原因としては送り先のパソコンのポート番号が80、受信先のポート番号が10001と違うポート番号からだと思います。
PHPの方で指定する以外方法はないですかね?

mm(21)な研究生

Re: GETコマンドを送るC言語を作りたいのですが…

#15

投稿記事 by mm(21)な研究生 » 9年前

すみません先ほどの投稿の削除お願いします、

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 9年前
住所: 東海地方
連絡を取る:

Re: GETコマンドを送るC言語を作りたいのですが…

#16

投稿記事 by softya(ソフト屋) » 9年前

問題はIPアドレスだと思うので、編集しておきました。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

mm(21)な研究生

Re: GETコマンドを送るC言語を作りたいのですが…

#17

投稿記事 by mm(21)な研究生 » 9年前

>>softyaさん
ありがとうございます。
っで、結局現在のところこれでうまくいけません
C言語的には不備はありますかね?

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 9年前
住所: 東海地方
連絡を取る:

Re: GETコマンドを送るC言語を作りたいのですが…

#18

投稿記事 by softya(ソフト屋) » 9年前

xportの使い方が良くわかっていないので、これでOKなのかは分かりません。
ただ、
for(i=0;i<33;i++){
putchar_x(a);
}
よりは、
for(i=0;a!='\0';i++){
putchar_x(a);
}
のほうが良いと思います。
でも、これだけで通信できない原因とも思えませんので、GETリクエストの方法に疑問があります。

GETリクエストの場合
unsigned char a[34]="get http://xxx.xx.xx.xxx/abcd.php";
とはならずに
unsigned char a[34]="get /abcd.php HTTP/1.1";
となるのが私の知るGETリクエストです。
なので、http://xxx.xx.xx.xxxのxxx.xx.xx.xxxは別に指定しないといけません。
これがxportだとどうすれば良いのか分からないのです。

あと、PHPサーバー側などでちゃんとGETリクエストが来ているかログを調べる必要もあると思います。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 9年前
住所: 東海地方
連絡を取る:

Re: GETコマンドを送るC言語を作りたいのですが…

#19

投稿記事 by softya(ソフト屋) » 9年前

すこし調べてみましたが、httpで通信する先のサーバアドレスはxportのマネージャで設定する必要がある様です。
http://pukiwiki.mujirushi.org/index.php?XPort
これはPC←シリアル→xport←LAN→WEBサーバ
ですがNiosボード←シリアル→xport←LAN→WEBサーバ
でも同じことだと思います。

ちなみに
GET / HTTP/1.0
Host: http://www.mujirushi.org ← WWWサーバホスト名
のWWWサーバホスト名は不要だと思います。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

mm(21)な研究生

Re: GETコマンドを送るC言語を作りたいのですが…

#20

投稿記事 by mm(21)な研究生 » 9年前

>>softyaさん
情報ありがとうございます。
添付してあるアドレスのところを確認してみましたが、いまいちどこで変更するのか書いていないのでわからないです(汗
もう少し調べてみます。
またsoftyaさんの書き込んでもらった修正でおこないましたが、現在のところうまくいっていません。
もしかしたらphpの方もおかしいのかもしれませんが、phpを相談する場所が見当たらないので困っています・・・。
どこかいいサイトないですかね?

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 9年前
住所: 東海地方
連絡を取る:

Re: GETコマンドを送るC言語を作りたいのですが…

#21

投稿記事 by softya(ソフト屋) » 9年前

telnetで設定するかWEBマネージャだと思いますが、使った事がないのとバージョンによって色々変わってみるみたいで調べられませんでした。
phpでは無く、www.yahoo.co.jpなどメジャーサイトに接続してみるのも手です。

あとパケットキャプチャなどでLANを流れるパケットを調べてみたほうが良いかも知れません。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

mm(21)な研究生

Re: GETコマンドを送るC言語を作りたいのですが…

#22

投稿記事 by mm(21)な研究生 » 9年前

どうも
今回

コード:

#include "excalibur.h"
#include "uart.c"

main(void)
{
	unsigned char a[34]="get http://xxx.xx.xx.xxx/abcd.php";
	int i,j;
	unsigned char b;
	
	na_pio_Xreset->np_piodata =1; 
	
	
	//getchar_x(&b);//
	//putchar_x(b);//
	
//	for(i=0;a[i]!='\0';i++){
//	putchar_x(a[i]);
//    putchar_0(a[i]);

	
//	}
	
	putchar_x(0x0d);
	putchar_x(0x0a);
	
	printf("OK");
	
	for(j=0;j<6;j++){
    	getchar_x(&a[j]);
    	
    //	printf("ok2");
	    putchar_0(a[j]);
	    
	    }
をコンパイルした状態で、Tera Term ProからGETコマンドを送ったところXportに対して結果が表示されました。
どうやらC言語の状態ではGetコマンドとして認識されていないようです。
そう考えるのは
Term Tera Proでは、すべての文字を打った後、Enterを押すことで送信される。
一方C言語では、一文字送るたびに通信が遮断されるのでひとつのGetコマンドとして認識してくれないのかと思います。
やはりXportの設定のような気がしてきました。
ただどのようにすればC言語内で送ったものがGETコマンドとして認識してくれるかこれからの課題だと思います・・・

mm(21)な研究生

Re: GETコマンドを送るC言語を作りたいのですが…

#23

投稿記事 by mm(21)な研究生 » 9年前

すみません
また例の部分の変更or削除をお願いします。(汗

アバター
softya(ソフト屋)
副管理人
記事: 11677
登録日時: 9年前
住所: 東海地方
連絡を取る:

Re: GETコマンドを送るC言語を作りたいのですが…

#24

投稿記事 by softya(ソフト屋) » 9年前

すいません、良く分かりません。
まず説明して欲しいのは、
>getchar_x(&a[j]);
>printf("ok2");
>putchar_0(a[j]);
がそれぞれ何処に対しての入出力か説明をお願いします。

それと
>をコンパイルした状態で、Tera Term ProからGETコマンドを送ったところXportに対して結果が表示されました。
>どうやらC言語の状態ではGetコマンドとして認識されていないようです。

これはどの様なルートで通信されているとお考えですか?
パソコン(Tera Term Pro) → Niosボード → ???
「Xportに対して結果が表示」とあるのは、何処に表示されたのでしょう?
どうにもNiosボードとxport辺りに接続されている周辺装置が分からないので状況が見えてきません。
by softya(ソフト屋) 方針:私は仕組み・考え方を理解して欲しいので直接的なコードを回答することはまれですので、すぐコードがほしい方はその旨をご明記下さい。私以外の方と交代したいと思います(代わりの方がいる保証は出来かねます)。

むじな

Re: GETコマンドを送るC言語を作りたいのですが…

#25

投稿記事 by むじな » 9年前

まずXPortとWEBサーバーがTCP/IP通信できるように設定しているかどうか。
NIOSでプログラムを開始するのは、その後。
まずは、使用する道具たちの、本当の動きを理解する。
以下のような接続で、確かめる。
[WIndowsPC TeraTarm]<---RS232C--->[XPort]<---LAN--->[WEB Server]
XPortは、出荷状態のままでは、今やりたい通信は、実現できない。
HTTP通信、いや基本のTCP/IPを理解しているのであれば、わかってると思うが、そのセッションの方向は、
[XPort クライアント]-----TCP/IP---->[WEB Server サーバ 80番ポート]
XPortの設定は、既にIPアドレスが割り当てられている前提で、内蔵するウェブへアクセスして設定。
・TCP通信で「クラアントモード」に設定
・リモートアドレスにWEBサーバのIPアドレスを設定
・リモートポート番号に「80」を設定
これで一応、最低限の設定はできている。
(今後、目的がかなった後、使い方次第で、他の部分を調整する、例えば切断タイミングなどを)
これで準備は完了。
次に、実験を開始する。
パソコンから、つまりTeraTarmから、「HTTPプロトコルそのもの」に該当する文字列を入力する。
以下、適当に書くから、インターネットで検索して調べて。

GET / HTTP/1.0<CR><LF>
Host: 192.168.xxx.xxx<CR><LF>
<CR><LF>

エディタで書いて、カット&ペーストでTeraTarmに貼付けるだけでいい。
改行コードは需要なので、TeraTarmの送信側改行コードの設定を忘れずに。

こんな感じで、WEBサーバとの通信が可能になるかなと。

もちろんWEBサーバ側も、いきなりPHPじゃなくて、index.htmlでやること。

あと、TeraTarmが改行コードを送られないと、ターミナルから入力したデータが送信されない現象は、
TCP/IP通信時に限り、数バージョン前にそのような動作にデフォルトで動くように変更された。仕様。
何事もツールなど道具に該当するものを使う前に、付属のヘルプとか履歴とか、目を通すように心がけましょう。

眠い。

ISLe
記事: 2646
登録日時: 9年前
連絡を取る:

Re: GETコマンドを送るC言語を作りたいのですが…

#26

投稿記事 by ISLe » 9年前

むじなさんが書いてますが、最初からmm(21)な研究生さんのプログラムではGETコマンドの最後に復帰・改行のコードを送ってないですよね。
HTTPプロトコルのリクエストは復帰・改行で完了します。
リクエストの途中でサーバーが応答しないのは当然かと。

【追記】No.22をちゃんと見てませんでした。でも何だろう?

mm(21)な研究生

Re: GETコマンドを送るC言語を作りたいのですが…

#27

投稿記事 by mm(21)な研究生 » 9年前

>>softyaさん

わかりづらくてすみません。
構成は

クライアントPC←[RS232C]→Niosボード⇔Xport←[RS232C]→ホストPC
Niosボード内の設定、C言語のコンパイル、また結果などはクライアントPCのNios SDK Shellにて確認可能

>「Xportに対して結果が表示された」
といったのは正確にはホストPC内で実行されたPHPの結果がXportに送られ、それは同時につながっているNiosボードに送られることになる
そしてNiosに送られた結果はクライアントPCの"Nios SDK Shell"で確認できるので「結果が確認できた」っといったのです。
すみません。

>getchar_x(&a[j]);
>printf("ok2");
>putchar_0(a[j]);
はNiosボードとRS232CでつながっているクライアントPCに対するものです。
これをすることでどの部分までC言語がうまく働いているかをチェックしています

>どの様なルートで通信されているとお考えですか?
については
本当にしたいのはクライアントPCにてコンパイル→Niosボード(実行)→Xport→[TCP/IP]→ホストPC(phpファイル実行)
その実行結果がホストPC→Xport→Niosボードで送られるようにしたいのですが、肝心な結果が確認できなかったので

今回したのが、一度
Niosボードにて前記事で載せたputchar_Xを除いた状態のC言語をコンパイル、実行
実行をかけた状態で、クライアントPCから[TCP/IP]でホストPCに対してGETコマンドを送る(Tera Term Proを使用)方法で行った。
これをすることでホストPC以外のものからGETコマンドをした場合、PHPファイルが実行されるが、この結果がXport(接続しているNiosボードにも)に送られるのかをチェックしたのです。
その結果が”abcd”(PHPの実行結果)
つまりNiosボード内でPHPファイルの結果が送られたことになり、成功していたということです。
これによってわかったのが、C言語で行うGETコマンドがホストPC内でGETコマンドとして認識されていないということなのです。


>>むじなさん
はじめまして、質問の回答ありがとうございます。

TCP/IPの通信についてですが、そちらについては問題がないと考えています。
このphpを実行させるC言語を作成する前にホストPC⇔Niosボード(XportにてホストPCとTCP/IPで接続している)の通信を確認するため

#include "excalibur.h"
#include "uart.c"

main(void)
{
unsigned char c;

na_pio_Xreset->np_piodata =1;

while(1){
getchar_x(&c);
/* putchar_x(c);*/
printf("ok?");
putchar_0(c);
putchar_x(c);
}
}

をコンパイル(クライアントPCにてコンパイル)、実行をし、この状態でホストPCからハイパーターミナルでXportと接続
キーボード入力を行うことで相互間での通信がうまくいっているかを確認しました。
この結果問題なく打った文字が返ってきたので、TCP/IP間での両者との通信はうまくいっていると確認しました。(ちなみにクライアント⇔Nios(Xportに接続)の場合も同様にうまくいきました。)

ただ私が心配しているのがXportの設定
設定に使用しているLANTRONIXデバイスインストーラにて一応、RemoteIPアドレス、RemoteポートをともにホストPCに変更することまでは行えています。
しかしむじなさんがいう「クライアントモード」というのがいまいち設定されているのか疑問です。
っというのもデバイスインストーラは取り扱いの説明書、及びHPの情報がなさすぎてどのように設定したらどうなるかなど皆無の状態で今にいたっています。
ですので今回の最大の原因はデバイスインストーラでXportの設定を変更することで解決できる問題だと思っています。
もしそこの点まで詳しいのでしたらおしえていただけたら幸いです。

mm(21)な研究生

Re: GETコマンドを送るC言語を作りたいのですが…

#28

投稿記事 by mm(21)な研究生 » 9年前

訂正
>クライアントPC←[RS232C]→Niosボード⇔Xport←[RS232C]→ホストPC
のXport⇔ホストPCは
[RS232C]ではなく[TCP/IP]です。
書き間違えました(汗

むじな

Re: GETコマンドを送るC言語を作りたいのですが…

#29

投稿記事 by むじな » 9年前

XPortは、デフォルトではサーバモードで、TCP/IPの「着信」動作で、受け付けるのみです。
つまり、設定を変更したであろう現在、もしデフォルト値であれば「10001」なのですが、
ここにTeraTarmで接続可能な状況であれば、サーバモードの設定のままなのでしょう。
クライアントとして発信するような設定になっていれば、着信動作はできないのですから。
(発着信の交互動作にもできますので、設定をいじりすぎると、ここかもしれないですが・・・)
まぁ、設定画面は英文ですので、その単語の意味するところを理解する前提として、
TCP/IPというプロトコルの基礎的な動作を理解していること、なので。
もし、学習ということで、現在進んでるのであれば、パケットキャプチャもするべきです。

mm(21)な研究生

Re: GETコマンドを送るC言語を作りたいのですが…

#30

投稿記事 by mm(21)な研究生 » 9年前

>>むじなさん
返信ありがとうございます。
現在のデフォルト値は10001となっています。
ただやはりむじなさんの話を聞くと他のクライアントからのGETコマンドによって実行されたPHPファイルの実行が着信できているというのはサーバモードだからになのかもしれません。
そう思うと今しようとしている送受信が可能なのか少し疑問になってしまいそうです…・
一応あの後以下のファイルから”Active Connect”や”Modem Mode”を変更してみて試しましたがうまくいきませんでした。
http://www.co-nss.co.jp/download/manual/WebManager.pdf

まあ自分自身何をいじればいいのかわかってなさ過ぎているのが問題なのでしょうが…

とりあえずパケットキャプチャというのはまだ行ったことがないので試してみたいと思います。


※いまさらですが実行しようとしているPHPファイルを添付しておきます。
<?php

$fp = fsockopen("XportのIPアドレス" , 10001 ,$errno, $errstr);
if (!$fp)
echo "$errstr ($errno)";
else{
fputs($fp,"abcd");
fclose($fp);

}

?>

またどなたか改めて現在のC言語的に問題点があると思いましたらご意見をいただけたら幸いです。

閉鎖

“C言語何でも質問掲示板” へ戻る