投稿日 | : 2007/05/05(Sat) 20:28 |
投稿者 | : 梅野 |
Eメール | : |
URL | : |
タイトル | : TCPで自分自身としか接続されない |
VB6で開発しています。
VB歴は趣味で6年ほどやっております。
TCPを用いたカードゲームを作成しております。
サーバに多数のWinsockをコントロール配列で準備し、
クライアントの人数だけwinsockのソケットを作りListenしています。
自分のパソコンにサーバとクライアントを置き
クライアントから接続要求を出せばサーバと接続できるのですが、
自分のパソコンにサーバを、他人のパソコンにクライアントを置き
接続要求を出してもらった場合サーバと接続することができません。
プログラムは自分で使うものと他人に使ってもらうものでは全く書き換えておりません。
自分のパソコンにサーバとクライアントの両方がある場合は
データのやり取りもうまく行っているのですが、
他人のパソコンから接続要求を出してもらっても
自分のパソコンのサーバ側にはConnectionRequestイベントも発生しません。
以下はクライアント側の接続部分のコードです。
With Form6.Winsock1
.RemotePort = aiteport'RemotePortを格納してあります
.LocalPort = zibunport'LocalPortを格納してあります
.RemoteHost = ip'サーバのIPアドレスを格納してあります。
.Close
.Connect
End With
以下はサーバ側の接続部分のコードです。
With Winsock1(j)
.Close
.RemotePort = Val(Left(iremono, InStr(iremono, vbTab) - 1))
'ファイルから読み出した一行をiremonoに格納してあります
.LocalPort = Val(Mid(iremono, InStr(iremono, vbTab) + 1, 4))
'ファイルにはクライアントのRemotePortとLocalPortが記入されています
.Listen
End With
Private Sub Winsock1_ConnectionRequest(Index As Integer, ByVal requestID As Long)
Winsock1(Index).Close
Winsock1(Index).Accept requestID
なお、UDPではこのプログラムとは全く違いますが、
自分と他人のパソコン間でも通信できました。
どうすればTCPでも他人と接続・通信することができるのでしょうか。
ご教授お願いします。