TCP Socket Tutorial (C#, Visual Studio, Networked Console Apps)
In this video, you'll learn how to send data over the internet from a client-sided app to a server-sided app. This data transfer allows you to send byte[] or string data between devices and the setup lets your two devices have a conversation. It's essential to know this if you're trying to set up a low level (high control) server.
Edit: This is the change to make if you want to make your server accessible to public. They will connect to your public IP and you have to set up port forwarding on your router. The screenshot is how the server code changes.
https://drive.google.com/file/d/1T_rn-3OWFhfdInJvBjwGlSIlMhPm8cMd/view
Many current networking solutions out there will allow you to send data through "magic" so I hope to clarify what's going on in those solutions through this video.
Here's the code discussed in the tutorial. As a commenter pointed out, one line was unnecessary, so I consolidated two lines into one to eliminate it.
client app code
using System;
using System.Net.Sockets;
using System.Text;
using System.IO;
namespace ClientSocketApp
{
class Program
{
static void Main(string[] args)
{
connection:
try
{
TcpClient client = new TcpClient("127.0.0.1", 1302);
string messageToSend = "My name is Neo";
int byteCount = Encoding.ASCII.GetByteCount(messageToSend + 1);
byte[] sendData = Encoding.ASCII.GetBytes(messageToSend);
NetworkStream stream = client.GetStream();
stream.Write(sendData, 0, sendData.Length);
Console.WriteLine("sending data to server...");
StreamReader sr = new StreamReader(stream);
string response = sr.ReadLine();
Console.WriteLine(response);
stream.Close();
client.Close();
Console.ReadKey();
}
catch (Exception e)
{
Console.WriteLine("failed to connect...");
goto connection;
}
}
}
}
server app code
using System;
using System.Net.Sockets;
using System.Text;
using System.IO;
namespace ServerSocketApp
{
class Program
{
static void Main(string[] args)
{
TcpListener listener = new TcpListener(System.Net.IPAddress.Any, 1302);
listener.Start();
while (true)
{
Console.WriteLine("Waiting for a connection.");
TcpClient client = listener.AcceptTcpClient();
Console.WriteLine("Client accepted.");
NetworkStream stream = client.GetStream();
StreamReader sr = new StreamReader(client.GetStream());
StreamWriter sw = new StreamWriter(client.GetStream());
try
{
byte[] buffer = new byte[1024];
stream.Read(buffer, 0, buffer.Length);
int recv = 0;
foreach (byte b in buffer)
{
if (b!=0)
{
recv++;
}
}
string request = Encoding.UTF8.GetString(buffer, 0, recv);
Console.WriteLine("request received: "+ request);
sw.WriteLine("You rock!");
sw.Flush();
}
catch(Exception e)
{
Console.WriteLine("Something went wrong.");
sw.WriteLine(e.ToString());
}
}
}
}
}
Что делает видео по-настоящему запоминающимся? Наверное, та самая атмосфера, которая заставляет забыть о времени. Когда вы заходите на RUVIDEO, чтобы посмотреть онлайн «TCP Socket Tutorial (C#, Visual Studio, Networked Console Apps)», вы рассчитываете на нечто большее, чем просто загрузку плеера. И мы это понимаем. Контент такого уровня заслуживает того, чтобы его смотрели в HD 1080, без дрожания картинки и бесконечного буферизации.
Честно говоря, Rutube сегодня — это кладезь уникальных находок, которые часто теряются в общем шуме. Мы же вытаскиваем на поверхность самое интересное. Будь то динамичный экшн, глубокий разбор темы от любимого автора или просто уютное видео для настроения — всё это доступно здесь бесплатно и без лишних формальностей. Никаких «заполните анкету, чтобы продолжить». Только вы, ваш экран и качественный поток.
Если вас зацепило это видео, не забудьте взглянуть на похожие материалы в блоке справа. Мы откалибровали наши алгоритмы так, чтобы они подбирали контент не просто «по тегам», а по настроению и смыслу. Ведь в конечном итоге, онлайн-кинотеатр — это не склад файлов, а место, где каждый вечер можно найти свою историю. Приятного вам отдыха на RUVIDEO!
Видео взято из открытых источников Rutube. Если вы правообладатель, обратитесь к первоисточнику.