· 8 years ago · Jul 27, 2017, 09:26 AM
1using System;
2using System.IO;
3using System.Net.Sockets;
4using System.Threading.Tasks;
5
6namespace TestConsoleApp
7{
8 class Program
9 {
10 static void Main(string[] args) => MainAsync().GetAwaiter().GetResult();
11
12 public static async Task MainAsync()
13 {
14 const string username = "username";
15 const string password = "oauth:token";
16
17 var tcpClient = new TcpClient();
18 await tcpClient.ConnectAsync("irc.twitch.tv", 6667);
19
20 var inputStream = new StreamReader(tcpClient.GetStream());
21 var outputStream = new StreamWriter(tcpClient.GetStream());
22
23 outputStream.WriteLine($"PASS {password}");
24 outputStream.WriteLine($"NICK {username}");
25 outputStream.WriteLine($"USER {username} 8 * :{username}");
26 outputStream.Flush();
27
28 outputStream.WriteLine("JOIN #channelName");
29 outputStream.WriteLine("CAP REQ :twitch.tv/tags");
30 outputStream.WriteLine("CAP REQ :twitch.tv/commands");
31 outputStream.WriteLine("CAP REQ :twitch.tv/membership");
32 outputStream.Flush();
33
34 while (true)
35 {
36 string response = inputStream.ReadLine();
37 if (response.Contains("PRIVMSG"))
38 {
39 continue;
40 }
41 Console.WriteLine(response);
42 }
43 }
44 }
45}