■58029 / inTopicNo.8) |
Re[7]: ASCコードで受け取るサーバに送信したい |
□投稿者/ コアラ主任 (33回)-(2011/03/24(Thu) 09:33:01)
|
■No58026 (shu さん) に返信 > ■No58023 (コアラ主任 さん) に返信 > > >>Private Declare Function send Lib "wsock32.dll" (ByVal s As Long, buf As Any, ByVal lngLenlen As Long, ByVal flags As Long) As Long > buf as Any => Byref buf as byte > > >>Dim sdatB(10) As byte >> >>sdatB(0) = &H41 >>sdatB(1) = &H42 >>lngRet = send(mlngSock, ByVal sdatB, 2, 0) > send(mlngSock, sdatB(0), 2, 0) > > でどうでしょう? > > > > >> >> >>《自己レス》 >>--------------------------------------------------------- >>Dim sdatc As String >> >>sdatc = ChrB(&H41) + ChrB(0) + ChrB(&H42) + ChrB(0) >>lngRet = send(mlngSock, ByVal sdatc, 2, 0) >>--------------------------------------------------------- >>テスト環境で行うと「AB」と言うデータを受け取っているのですが、 >>ASCコードにて受け取る環境では、正しく、解読できるのでしょうか・・・。 >>(※今、一歩、コードと言うものを理解できていない・・・。) >> > 文字列ならこれで2->4にすればいいと思いますが、これだと文字の間にnullが入りますがそういう仕様ですか? > >
度々のご返答ありがとうございます。
> send(mlngSock, sdatB(0), 2, 0) > > でどうでしょう? はい、ありがとうございました。 テスト環境ですが、「AB」と受信されたのを確認しました。
> 文字列ならこれで2->4にすればいいと思いますが、これだと文字の間にnullが入りますがそういう仕様ですか? こちらは、平行し、調べていた、とあるページにVBは、バイト型は、文字列で 送信しないといけないと書いてあった一部を見て、そこを参照し、作成してみました。 バイト型を文字列にするの逆の操作を記述しました。 >sdatc = ChrB(&H41) + ChrB(0) + ChrB(&H42) + ChrB(0) >lngRet = send(mlngSock, ByVal sdatc, 2, 0) これで、先ほどと同じようにテスト環境で「AB」と受信されているよう 画面上は、見えます。 かつ、送信データ長は、「2」のままです。 逆にchrb(0)を外し、「ChrB(&H41) + ChrB(&H42)」として、送信すると 受信側では「?」と表示されて、受信されています。 そして、Chrb(0)を入れても、画面上には、上記のバイト配列で送信したのと 同じように「AB」と隙間なく、受信されているように見えます。 ASCコードを受け取る環境でも、同じデータして、認識されるのでしょうか・・・。
|
|