[
板情報
|
カテゴリランキング
]
したらばTOP
■掲示板に戻る■
全部
1-100
最新50
|
メール
| |
C#、Vb2005 でSocket通信
4
:
igoten
:2010/06/09(水) 09:21:47
//メインスレッドのテキストボックスに書き込む
fomServer.Invoke (new dlgWriteText(fomServer.WriteReadText)
, new object[] { this,strGetText });
ここでエラーが出るのですか?
5
:
RYU
:2010/06/09(水) 09:41:52
そこを書き換えて、イベントが発生するようにしています。
public class Server_ER_data : EventArgs
{
public string ip;
public int port;
public string d1;
public string d2;
//Recive data constructer
public Server_ER_data(string ip, int port, string d1, string d2)
{
this.ip = ip;
this.port = port;
this.d1 = d1;
this.d2 = d2;
}
}
public class ServerOpener
{
// EvevntHandler Datarecive Server_R_Data
public delegate void Server_recive(object r, Server_ER_data r_data);
public event Server_recive OnRecive;
・・・・・・・・・・
6
:
RYU
:2010/06/09(水) 09:47:38
すみません。続きです。
private void OnReadComplete(IAsyncResult ar)
{
try
{
//受信文字をStreamから読み込みます
if (networkStream == null)
return;
//受信バイト数が返る
int bytesRead = networkStream.EndRead(ar);
if (bytesRead > 0) //受信文字が有った
{
//受信部分だけ切り出す
Byte[] getByte = new byte[bytesRead];
for (int i = 0; i < bytesRead; i++)
getByte[i] = buffer[i];
byte[] uniBytes;
//'S-Jisからユニコードに変換
uniBytes = Encoding.Convert(ecSjis, ecUni, getByte);
string orMsg = BitConverter.ToString(getByte);
//バイト配列から文字列に変換する
string strGetText = ecUni.GetString(uniBytes);
//受信文字を切り出す
// 相手先を調べる
IPEndPoint r_ip1 = (IPEndPoint)this.socket.RemoteEndPoint;
string rip = Convert.ToString(r_ip1.Address);
// 受信ポートを調べる
IPEndPoint l_port = (IPEndPoint)this.socket.LocalEndPoint;
int lp = Convert.ToInt16(l_port.Port);
//event handler
Server_ER_data rr = new Server_ER_data(rip, lp, orMsg, strGetText);
OnRecive(this, rr);
//とりあえず返信する
WriteString(uniBytes);
//次の受信を待つ
networkStream.BeginRead(buffer, 0, buffer.Length, callbackRead, null);
としています。
ここのOnRecive(this, rr);でイベントを発生させ、呼び出し側で、
受信データの処理を行いたいと思っています。
サンプルでは、直接フォームのテキストに書いていますが、一度受取、処理したいと考えています。
良い方法をご指導願います。
7
:
igoten
:2010/06/09(水) 10:59:44
それでどの行でエラーが出るのでしょうか?
8
:
RYU
:2010/06/09(水) 20:57:52
度々、すみません。自己解決できました。
public class ServerOpener
{
// EvevntHandler Datarecive Server_R_Data
public delegate void Server_recive(object r, Server_ER_data r_data);
public event Server_recive OnRecive;
で、制御元より、イベントを受け取るメソッドのなかで、リストボックスに
追記する制御を行っており、この部分が2度目にエラーとなりました。
ここで、直接リストボックスを制御せず、ここにInvokeでスレッドを作り、
処理を渡しました。
質問のしかたに問題があり、お手数をおかけしました。
ありがとうございました。
お手が空きました、IPアドレスをポーリングして、データを収集するサンプルを
お教えいただければと思います。
9
:
<削除>
:<削除>
<削除>
10
:
<削除>
:<削除>
<削除>
11
:
<削除>
:<削除>
<削除>
15
:
クロエ バッグ
:2013/10/23(水) 16:19:49
I am sure this article has touched all the internet people, its really really nice piece of writing on building up new webpage.
クロエ バッグ
http://www.myindyareahome.com/
新着レスの表示
名前:
E-mail
(省略可)
:
※書き込む際の注意事項は
こちら
※画像アップローダーは
こちら
(画像を表示できるのは「画像リンクのサムネイル表示」がオンの掲示板に限ります)
スマートフォン版
掲示板管理者へ連絡
無料レンタル掲示板