したらばTOP ■掲示板に戻る■ 全部 1-100 最新50 | メール | |

C#、Vb2005 でSocket通信

6RYU: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);でイベントを発生させ、呼び出し側で、
受信データの処理を行いたいと思っています。
サンプルでは、直接フォームのテキストに書いていますが、一度受取、処理したいと考えています。
良い方法をご指導願います。


新着レスの表示


名前: E-mail(省略可)

※書き込む際の注意事項はこちら

※画像アップローダーはこちら

(画像を表示できるのは「画像リンクのサムネイル表示」がオンの掲示板に限ります)

掲示板管理者へ連絡 無料レンタル掲示板