- - PR -
VB.NETでのソケット通信
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2007-11-03 21:11
VB.NET上でのソケット通信を行おうとしていますが,
2回目の受信(Readメソッド)がうまく行かず,処理が止まってしまいます. なお,あるサーバに対して,プライベートポートで接続しようとしています. 同じコネクションで複数回データを送受信できるものなのでしょうか? また,できるとすれば,どのようにしたらよいのか教えていただきたいです. ※MSDNのソケット通信を実装する方法のクライアントのソースを参考にしました. Module Module1 Sub Main() Dim portNum As Integer = XXXXX 'ポート番号を指定 Dim hostName As String = "XXXXXX" 'ホスト名 Dim client As New System.Net.Sockets.TcpClient(hostName, portNum) Dim ns As System.Net.Sockets.NetworkStream = client.GetStream() Try '----受信---- 'サーバに接続すると何かしら文字を返すので,先に取得しています Dim bytes(1024) As Byte Dim bytesRead As Integer = ns.Read(bytes, 0, bytes.Length) Console.WriteLine(System.Text.Encoding.Default.GetString(bytes, 0, bytesRead)) '----送信---- If ns.CanWrite Then Dim word As Byte() = System.Text.Encoding.Default.GetBytes("処理文字列送信") ns.Write(word, 0, word.Length) End If If ns.CanRead Then Dim bytes2(1024) As Byte Dim bytesRead2 As Integer = ns.Read(bytes2, 0, bytes2.Length) Console.WriteLine(System.Text.Encoding.Default.GetString(bytes2, 0, bytesRead2)) End If Catch ex As Exception Console.WriteLine(ex.Message) End Try ns.Close() client.Close() End Sub End Module [ メッセージ編集済み 編集者: むっく 編集日時 2007-11-03 22:45 ] | ||||||||
|
投稿日時: 2007-11-03 22:39
もちろんできます。
そのコードでほぼ問題ないです。 ポート番号の部分がなんか変ですが、 問題ないコードだと思います。 #このままで使うことは殆ど無いと思いますが。 SocketのRead、Writeがいつ完了するか、 サーバーがどう振舞うのか、 その辺をMSDNなどでよく調べるといいでしょう。 Socketを知らなければSystem.Net.Sockets.Socketを使うのは大変なので、 有名な http://tangentsoft.net/wskfaq/ で勉強するのもいいと思います。 | ||||||||
|
投稿日時: 2007-11-04 01:04
れいさんありがとうございます.
問題解決しました. 単に改行コードの問題でした.. お騒がせしてすみません. |
1