VB6.0用掲示板の過去のログ(No.2)−VBレスキュー(花ちゃん)
[記事リスト] [新規投稿] [新着記事] [ワード検索] [管理用]

投稿日: 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でも他人と接続・通信することができるのでしょうか。
ご教授お願いします。


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

- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)

- VBレスキュー(花ちゃん) - - Web Forum -