- PR -

winsockのデータ受信で

1
投稿者投稿内容
dsk
会議室デビュー日: 2006/12/06
投稿数: 1
投稿日時: 2006-12-06 15:06

今Winsockをつかい、サーバとクライアント2つが接続して対戦する簡単なゲームを作っています。
ですが、いきずまっているのでいくつか質問させてください。

サーバとクライアント複数の接続はでき、サーバクライアント間でチャットもできるようになりました。

でDataArrivalのところですが、
Dim a As String
Winsock.GetData a 'aに文字型として拾得するようになっています。
text1.text = a       '表示
となっていて文字型のチャットの文や、
Winsock.SendData "おはよう"などは送受信できます。
で、Winsock.SendData b 'b=13
など数値型のデータはうまくうけとれません。
Dim a As integer にしたらやはり文字型がうけとれなくなります。
数値型と文字型をうまく分別、見極めて処理するにはどうしたらいいのでしょうか?

またこれだと受信したデータ、例えばc=3,d=8などのデータ全てaとなって受信されますよね?
サーバとクライアント間で同じ変数にしてもデータは受け継がれてませんでした。
それぞれdやeのデータを残しておくにはどうしたらいいのでしょうか?

shimix
ぬし
会議室デビュー日: 2004/08/05
投稿数: 512
お住まい・勤務地: 大分市
投稿日時: 2006-12-06 15:21
データに先行して何らかのヘッダを付加するとか(それでも数値は文字列にしてから渡しますかね)

引用:

dskさんの書き込み (2006-12-06 15:06) より:
で、Winsock.SendData b 'b=13
など数値型のデータはうまくうけとれません。
Dim a As integer にしたらやはり文字型がうけとれなくなります。
数値型と文字型をうまく分別、見極めて処理するにはどうしたらいいのでしょうか?

またこれだと受信したデータ、例えばc=3,d=8などのデータ全てaとなって受信されますよね?
サーバとクライアント間で同じ変数にしてもデータは受け継がれてませんでした。
それぞれdやeのデータを残しておくにはどうしたらいいのでしょうか?


プロトコルは設計されていないんでしょうか?送受信間で何か制御(というか取り決め)はしていないのですか?

どういう変数だったかというような情報は何も送られません。送信した内容を受信するだけです。それ以外の部分は自分で取り決める必要があります。
MMX
ぬし
会議室デビュー日: 2001/10/26
投稿数: 861
投稿日時: 2006-12-06 15:38
参考になる 検索語
オブジェクト転送

値(バイナリの具体値)のみ転送されてます
それを、どのように解釈するか?の取り決めは 別です

型情報を同時にFLAGで送ったり、事前取り決めで決め打ち解釈。
それが、プロトコル、転送フォーマット
1

スキルアップ/キャリアアップ(JOB@IT)