私はUDPを使って、基本的なファイル転送プロトコルを実装しようとしています。 Beej's Guideを参考にしていますが、私が投稿するコードの多くはそこからです。双方向UDPクライアントとサーバー?
これまでの私のプログラムでは、「話し手」が自分が望むファイルの名前を「受信者」に送信しています。
そこから、受信者はファイルが存在するかどうかをチェックし、存在する場合はファイルのサイズを調べます。
ここで私は問題を抱えています。私は話し手にファイルのサイズを送るために受信機が必要です。あなたは私のコードで(私はそれを実装した方法の下のリンク)を見ることができます。しかし、話し手はまだ何かが送信されるのを待っているようにハングアップします。
これは私がレシーバは、それが戻って話者に通信できるようにするためにいくつかの追加のコードを必要だと思いますし、それからのデータを受け取るません(私はTCPを使用し、その知識の私の不足を言い訳しています)。
誰かが私が紛失しているコードを教えてもらえますか、あるいは間違った機能を使用していますか? Beejのガイドに従うことは難しく、双方向のコミュニケーションの例は提供していません。
ありがとうございました。さらに詳しい情報が必要な場合はお知らせください。
リスナー:http://pastebin.com/UL1xjDnP
トーカ:http://pastebin.com/B2zrXPgZ
EDIT:解決! cnicutarする おかげで、
私はクライアント
if ((numbytes = sendto(sockfd,buffer,strlen(buffer), 0, (struct sockaddr *)&their_addr, &addr_len)) == -1)
が報告「リスナー」となっていますか? – cnicutar
私はなぜUDPであるのだろうか? TCPは、ファイルを転送するためのはるかに優れたプロトコルです。 UDPは、ファイルを転送する際に重要な、逐次配信、破損データの再送信などの機能を提供しません。 –
はい、リスナーはファイルサイズが送信されたことを報告しています。 また、私はUDPを学びたいと思っています。私は両方を知っている価値があると思います。 – user974703