ファイルにデータを書き込むサードパーティのCコードがあります。そのコードを変更して、まったく同じデータをデータグラムソケットに書き込むようにします。ファイルの代わりにデータグラムソケットを使用するようにPOSIX Cコードを書き換える方法
FILE
へのポインタは、使用するファイルを決定するためにサードパーティのコードに渡されます。データは、fwrite()
を使用して排他的にファイルに書き込まれます。コードは、ソケットとファイルの両方にfwrite()
write()
ため作品の代わりにwrite()
を使用する場合は
すべてが正常になります。これは、データ型であるファイル記述子として整数が期待されます。socket()
とopen()
が返されます。
ただし、サードパーティのコードではfwrite()
が使用されているため、この作業は容易ではありません。私はこの仕事を終わらせるための最良の方法は何だろうかと思います。
fwrite()
と同じ仕事をすると、fwrite()
と内部的にwrite()
を使用してください。または、整数ファイル記述子をFILE*
に "キャスト"するためのハックがありますか?
UDPを使用していただきありがとうございます。この問題が発生した場合は、代わりにTCPを使用することを検討します。 – MBober
あなたは**この問題に遭遇します**、それを防ぐ方法はありません.TCPを使うか、UDPの上に独自の信頼できるプロトコルを書いてください。さらに、書き込みバッファーが大きすぎると、UDPを使用している場合、パケットは常に破棄されます。 –