now server can send to client array of byte. But client recieved only 1 iteration. How i can do, that if client connected then it always recieve information from server?
Server:
public ServerSocket(IPAddress ipAddress, int port)
{
_server = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
_server.Bind(new IPEndPoint(ipAddress, port));
_server.Listen(20);
Console.WriteLine("Wait connection");
Accept();
}
private async Task StartSend(int i)
{
try
{
CodingImage img = new CodingImage();
var buffer = img.CodingImages("C:\\image\\file"+i+".bmp");
Task<int> senTask = SendAsync.AsyncSend(client, buffer, 0, buffer.Length);
}
catch(Exception ex)
{
}
}
private async void Accept()
{
for (int i = 0 ;i<14 ;i++ )
{
client = await Task.Factory.FromAsync<socket>(_server.BeginAccept, _server.EndAccept, true);
Console.WriteLine("Connected");
await StartSend(i);
}
}
public static Task<int> AsyncSend(this Socket socket, byte[] buffer, int offset, int count)
{
return Task.Factory.FromAsync<int>(
socket.BeginSend(buffer, offset, count, SocketFlags.None, null, socket),
socket.EndSend);
}
</int></int></socket></int>
Client:
private async void Form1_Load(object sender, EventArgs e)
{
IPHostEntry ipHostInfo = Dns.Resolve(Dns.GetHostName());
IPAddress ipAddress = ipHostInfo.AddressList[0];
ClientSocket cs = new ClientSocket();
await cs.Connect(ipAddress, 11000);
}
public ClientSocket()
{
_client = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
}
public async Task Connect(IPAddress ipAddress, int port)
{
_client.Connect(ipAddress, port);
if (!_client.Connected)
{
Console.WriteLine("Can't connect");
}else
Console.WriteLine("Connected");
int i=0;
while(i<14)
{
await StartRecieve(i);
i++;
}
}
public async Task StartRecieve(int i)
{
try
{
var buffer = new byte[999999];
buffer2 = await _client.ReceiveTaskAsync(buffer,0,buffer.Length);
EncodingImage enc = new EncodingImage();
enc.EncodingImageForRecievedBuffer(buffer, i);
Console.WriteLine("Картинка под номером {0} сохранена", i);
}
catch (Exception ex)
{
}
}