- PR -

通信パケットの受信について

1
投稿者投稿内容
akcy
会議室デビュー日: 2008/07/04
投稿数: 5
投稿日時: 2008-08-02 09:05
TCP/IP通信の非同期でのパケット受信するプログラムを作っています。

そこで、パケットが数回に分けて送られてくることがあるのですが、下の2つのメッセージが1回に受信してしまうことがあるのですが、どう処理したらいいのでしょうか。

□□□□□■■■  ■■■■■○○○ ○○○○○

受信するサイズが多すぎるのですべてバッファすることができない状況です。

そこで、メッセージ送信側に送信するごとにスリープをしてもらい通信は必ず1メッセージづつ送ってもらっている状況です。

機能面からもあまりよくないと思うので何か解決方法はあるのでしょうか?

れい
ぬし
会議室デビュー日: 2005/11/01
投稿数: 346
投稿日時: 2008-08-02 10:24
引用:

akcyさんの書き込み (2008-08-02 09:05) より:
TCP/IP通信の非同期でのパケット受信するプログラムを作っています。

そこで、パケットが数回に分けて送られてくることがあるのですが、下の2つのメッセージが1回に受信してしまうことがあるのですが、どう処理したらいいのでしょうか。

□□□□□■■■  ■■■■■○○○ ○○○○○

受信するサイズが多すぎるのですべてバッファすることができない状況です。

そこで、メッセージ送信側に送信するごとにスリープをしてもらい通信は必ず1メッセージづつ送ってもらっている状況です。

機能面からもあまりよくないと思うので何か解決方法はあるのでしょうか?



TCP/IP通信では「パケット」という概念では処理できません。
送受信はストリームであり、一回の受信で取得できる量は一定ではありません。

#これはファイルの入出力も同じです。

バッファに蓄えたり、
ストリーム内部にメッセージサイズを含めたり、
受信サイズに依存しないよう組むしかありません。

TCPでの通信としては基本ですので、
入門書・入門サイトなどで勉強するといいでしょう。
1

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