私はクライアント側からファイルを受け取るC#でソケットプログラミングを使って簡単なサーバを作成しました。私のサンプルコードセグメントは以下の通りです。C#でサーバからクライアントにいくつかの制約を送信する
いくつかの制限を追加したいと思います。私はファイルサイズ(4 KBまたは2 KBなど)と許容されるファイル形式(.doc、.txt、.cppなど)に制限を設けて、すぐにクライアントに送信したいクライアントはサーバーに接続し、クライアントがファイルを適切に送信できるようにします。どうすればいいの?
サンプル・コード・セグメント:追加の行は、私がクライアントに制限を送信するためのコードに追加する必要があります
using System;
using System.Collections.Generic;
using System.Net;
using System.Net.Sockets;
using System.IO;
using System.Text;
namespace FileTransfer
{
class Program
{
static void Main(string[] args)
{
// Listen on port 1234
TcpListener tcpListener = new TcpListener(IPAddress.Any, 1234);
tcpListener.Start();
Console.WriteLine("Server started");
//Infinite loop to connect to new clients
while (true)
{
// Accept a TcpClient
TcpClient tcpClient = tcpListener.AcceptTcpClient();
Console.WriteLine("Connected to client");
byte[] data = new byte[1024];
NetworkStream ns = tcpClient.GetStream();
int recv = ns.Read(data, 0, data.Length);
StreamReader reader = new StreamReader(tcpClient.GetStream());
//Will add some lines to add restrictions...
}
}
}
}
?
ファイルサイズに制限を加えるには、 "int counter = 0; counter + = recv;"のように合計データサイズカウンタを追加するだけです。次に、制限を超過した場合、適切なメッセージでクライアントを削除します。 –
私はちょうどクライアントがそれに応じて@Alek Depler –
Hmファイルを送ることができるようにクライアントが接続するようにssonとしてクライアントにファイルサイズと許容されるファイル形式を送信したい、そしてあなた自身のクライアントサーバープロトコルを作成する必要があります。クライアントとサーバーの両方が相互にデータを送信できるため、すべてのデータを技術プロトコルの指示とデータその2つのタイプで分割する必要があります。 "CodeCaster"の答えは正しい –