C# と VB.NET の質問掲示板

ASP.NET、C++/CLI、Java 何でもどうぞ

C# と VB.NET の入門サイト

Re[5]: C#でのソケット通信


(過去ログ 62 を表示中)

[トピック内 9 記事 (1 - 9 表示)]  << 0 >>

■36062 / inTopicNo.1)  C#でのソケット通信
  
□投稿者/ 小北 (2回)-(2009/05/19(Tue) 16:16:18)

分類:[C#] 

C#でのソケット通信を行いたいのですが、初めになにを設定しないといけないのかがわかりません。

「 using System.Net;//ソケット通信に必要?
  using System.Net.Sockets;//ソケット通信に必要?
  using System.Threading;//ソケット通信に必要?
」を宣言に追加

その後
「 static public sockaddr_in PC_addr;
」とすると

「型または名前空間名 'sockaddr_in' が見つかりませんでした。using ディレクティブまたはアセンブリ参照が不足しています。」
と言うエラーになります。

何が抜けているのでしょうか?
引用返信 編集キー/
■36063 / inTopicNo.2)  Re[1]: C#でのソケット通信
□投稿者/ 魔界の仮面弁士 (1078回)-(2009/05/19(Tue) 16:25:22)
No36062 (小北 さん) に返信
> 「型または名前空間名 'sockaddr_in' が見つかりませんでした。using ディレクティブまたはアセンブリ参照が不足しています。」
> と言うエラーになります。

'sockaddr_in' は、アンマネージ API を用いてソケット通信する場合に利用される構造体ですが、
System.Net.Sockets を用いる方法の場合、sockaddr_in は使いません。PC_addr 変数の宣言を除去してください。
引用返信 編集キー/
■36064 / inTopicNo.3)  Re[1]: C#でのソケット通信
□投稿者/ ぱぱいやん (23回)-(2009/05/19(Tue) 16:53:28)
ぱぱいやん さんの Web サイト
No36062 (小北 さん) に返信
> C#でのソケット通信を行いたいのですが、初めになにを設定しないといけないのかがわかりません。

using System.Net;
using System.Net.Sockets;

この辺かなぁ・・・

using System.IO;

それと、上記はデータ送受信で使用するストリームとして使うかな。

using System.Threading;

これは、通信が確立した時、別のスレッドで実行させることでリスニングポート待ちスレッドと並行処理させるのに必要です。

http://blogs.wankuma.com/rti/archive/2009/01/20/166509.aspx

上記のサンプルとか、良かったら参考にしてみてください。
引用返信 編集キー/
■36079 / inTopicNo.4)  Re[2]: C#でのソケット通信
□投稿者/ 小北 (3回)-(2009/05/20(Wed) 08:46:40)
魔界の仮面弁士に返信
連絡ありがとうございます。

No36062 (小北 さん) に返信
> 「型または名前空間名 'sockaddr_in' が見つかりませんでした。using ディレクティブまたはアセンブリ参照が不足しています。」
> と言うエラーになります。

>'sockaddr_in' は、アンマネージ API を用いてソケット通信する場合に利用される構造体ですが、
>System.Net.Sockets を用いる方法の場合、sockaddr_in は使いません。PC_addr 変数の宣言を除去してください。

メーカーのサンプル(VB)をC#に置き換えようとしているのですが、それを流用するためには
'sockaddr_in' を使えるようにならないと、流用ができません。
魔界の仮面弁士の内容からすると 「System.Net.Sockets」は違う通信方式用で、
今回私がしたい内容には不要なのかなと思います。
引用返信 編集キー/
■36081 / inTopicNo.5)  Re[3]: C#でのソケット通信
□投稿者/ オショウ (193回)-(2009/05/20(Wed) 09:23:41)
> メーカーのサンプル(VB)をC#に置き換えようとしているのですが、それを流用するためには
> 'sockaddr_in' を使えるようにならないと、流用ができません。
> 魔界の仮面弁士の内容からすると 「System.Net.Sockets」は違う通信方式用で、
> 今回私がしたい内容には不要なのかなと思います。

  極論を言うと、C#という言語を使うなら、API系でのソケット通信方式を
  使うよりは、.NETに既に用意されているSocketクラスを使いなさい。

  と言うことを言っておられるので、
> 今回私がしたい内容には不要なのかなと思います。
  と、思っておられるなら、もう誰もあなたのカキコミに対して助言も、
  支援も無くなりますヨ!

  VB6?のサンプルを流用するのはいいとしても、最低限の修正変更は、
  使用する言語に合わせて必要だと私も考えます。

以上。
引用返信 編集キー/
■36082 / inTopicNo.6)  Re[3]: C#でのソケット通信
□投稿者/ も (77回)-(2009/05/20(Wed) 09:30:20)
No36079 (小北 さん) に返信
> 魔界の仮面弁士に返信
> 連絡ありがとうございます。
>
> ■No36062 (小北 さん) に返信
>>「型または名前空間名 'sockaddr_in' が見つかりませんでした。using ディレクティブまたはアセンブリ参照が不足しています。」
>>と言うエラーになります。
>
> >'sockaddr_in' は、アンマネージ API を用いてソケット通信する場合に利用される構造体ですが、
> >System.Net.Sockets を用いる方法の場合、sockaddr_in は使いません。PC_addr 変数の宣言を除去してください。
>
> メーカーのサンプル(VB)をC#に置き換えようとしているのですが、それを流用するためには
> 'sockaddr_in' を使えるようにならないと、流用ができません。
> 魔界の仮面弁士の内容からすると 「System.Net.Sockets」は違う通信方式用で、
> 今回私がしたい内容には不要なのかなと思います。
C#でソケット通信がしたいのか,メーカーのサンプル(VB)を流用してC#に置き換えようとしているのか,どちらですか?
前者が主目的なら,System.Net.Socketsに含まれるクラスを使って,TCPなりUDPなりで通信をすればいいだけですが,
後者の場合,そもそもVBの現物から,何がC#に流用可能かどうか確かめないことにはなんともいえません.
(多分,流用可能な部分なんてほとんど無いと思うけど)

# C#でのSystem.Net.Scoektによるソケットの扱いやすさからして,
# Windowsのソケットライブラリを直接使うような(つまりsockaddr_inなどのアンマネージドな構造体を使う)方法は避けるべきだと思いますが
引用返信 編集キー/
■36083 / inTopicNo.7)  Re[3]: C#でのソケット通信
□投稿者/ よねKEN (333回)-(2009/05/20(Wed) 09:45:56)
#オショウさんのコメントとかぶるところもありますが・・・

> メーカーのサンプル(VB)をC#に置き換えようとしているのですが、それを流用するためには

そういう前提があるなら、最初にそう書いておいた方がよいですね。

ちなみにそのサンプルはVB6のものでしょうか?
そうであれば、sockaddr_in構造体もサンプル内で定義されていると思いますし、
APIの宣言も定義されていると思います。それらをC#用の記述に直す必要がありますね。
記述を直すには、VB6とVB.net/C#の間ではデータ型の違いなどがあるので、
その違いをしっかり把握しておく必要があります。

> 'sockaddr_in' を使えるようにならないと、流用ができません。
> 魔界の仮面弁士の内容からすると 「System.Net.Sockets」は違う通信方式用で、
> 今回私がしたい内容には不要なのかなと思います。

「System.Net.Sockets」もソケット通信を行うためのクラスライブラリです。
違う通信方式ではありません。
ただし、VBのサンプルの方法を極力手を加えずに使いまわすのが大前提ならば、
System.Net、System.Net.Socketsも使わないかもしれませんね。

サンプルの実装を理解した上で、その内容を踏襲するだけならば、
'sockaddr_in' は必要なくて、System.Net.Socketsなどの
クラスライブラリを使用して実装することができます。

引用返信 編集キー/
■36084 / inTopicNo.8)  Re[4]: C#でのソケット通信
□投稿者/ 小北 (4回)-(2009/05/20(Wed) 10:49:47)
No36083 (よねKEN さん)までの書き込みを読ませていただきまして

私の考え方に多くの問題があると思いました。

ただ、今どういう方向でいけばいいのか分っておりません。

今から、書き込み頂いた内容の理解を進めていきます。

また、情報、ヒントありましたら書き込みしていただけると幸いです。

引用返信 編集キー/
■36090 / inTopicNo.9)  Re[5]: C#でのソケット通信
□投稿者/ 倉田 有大 (601回)-(2009/05/20(Wed) 15:58:39)
VBのその元のソースってAPIつかっているんですか?
俺ならC#のSocketで作り直すけど。
引用返信 編集キー/


トピック内ページ移動 / << 0 >>

このトピックに書きこむ

過去ログには書き込み不可

管理者用

- Child Tree -