tagCANDY CGI VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板
VBレスキュー(花ちゃん)の Visual Basic 6.0用 掲示板
[ツリー表示へ]  [ワード検索]  [Home]

タイトル WinsockでTCPがつながらない
投稿日: 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のサイトで調べに調べましたが解決できません、
どうか皆様のお力添えをお願いしたいと思います。

- 関連一覧ツリー をクリックするとツリー全体を一括表示します)

古いスレッドにレスはつけられません。