Я создал простой сервер, использующий программирование сокетов на C#, который получит файл со стороны клиента. Мой сегмент кода кода приведен ниже.Отправка некоторых ограничений клиенту с сервера в C#
Я хочу добавить некоторые ограничения. Я хочу сделать ограничение на размер файла (например, 4 КБ или 2 КБ) и допустимые форматы файлов (такие как .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;». Затем, если предел превысил клиент-клиент с соответствующим сообщением. –
Я просто хочу отправить размер файла и допустимые форматы файлов клиенту как sson при подключении клиента, чтобы клиент мог соответственно отправлять файлы @Alek Depler –
Hm, тогда вам нужно создать свой собственный клиент-серверный протокол. Как клиент, так и сервер могут отправлять данные друг другу, вам необходимо разделить все данные на два типа: инструкции по техническому протоколу и сами данные. Ответ «CodeCaster» верен –