タイトル | : WinsockでTCPがつながらない |
記事No | : 12357 |
投稿日 | : 2008/05/25(Sun) 16:19 |
投稿者 | : コスモス |
初めて利用させて頂きます。コスモスと申します。 環境はXP,VB6を利用しております。 かれこれ2年間解決できない問題がありまして、 皆さんのお知恵をお貸ししてほしいとおもいます。
WinsockのTCPを用いたアプリケーションを作っております。 ソフトを2重起動して自分と自分で接続のテストをすればつながるのですが、 自分と他人の接続をすると全くつながりません。 サーバ側にはコネクションリクエストイベントさえ発生しません。 サーバのListenのあとクライアントでconnectしても、 フリーズじゃないですが双方とも何も起こらない状態が続きます。
以下のコードは極力簡略化したチャットのアプリケーションなんですが、 2重起動して自分と自分で接続するとちゃんとチャットができます。 しかし他人と接続しても全くつながりません。 なお、コード中のoption1はサーバ・クライアントの選択用のオプションボックス、 command1は「接続」ボタン、command2は「発言」ボタンです。 text1にはポート番号、text2にはIPアドレスが入っております。
Private Sub Command1_Click() If Option1(0).Value = True Then Winsock1.LocalPort = Text1.Text Winsock1.Listen Else Winsock1.RemotePort = Text1.Text Winsock1.RemoteHost = Text2.Text Winsock1.Connect End If End Sub
Private Sub Command2_Click() Winsock1.SendData Text4.Text Text3.Text = Text3.Text & vbCrLf & Text4.Text Text4.Text = "" End Sub
Private Sub Winsock1_Connect() Command2.Enabled = True End Sub
Private Sub Winsock1_ConnectionRequest(ByVal requestID As Long) Winsock1.Close 'この行が無いとなぜかエラーになる Winsock1.Accept requestID Command2.Enabled = True End Sub
Private Sub Winsock1_DataArrival(ByVal bytesTotal As Long) Dim GotData As String Winsock1.GetData GotData Text3.Text = Text3.Text & vbCrLf & GotData End Sub
それともうひとつお伺いしたいことがあります。 どこかのサイトのチャットに入室すると、192.168…とはまた違った 入室者のIPアドレスが表示されることがあると思いますが、 巷のチャットで表示されるIPアドレスを使うべきなのか、 IPconfigで得られるIPアドレスを使うべきなのか、 お教えいただけたらと思います。
様々なVBのサイトで調べに調べましたが解決できません、 どうか皆様のお力添えをお願いしたいと思います。
|