|
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677 |
- using System;
- using System.Text;
- using System.Threading;
- using TouchSocket.Core.Config;
- using TouchSocket.Core.Plugins;
- using TouchSocket.Sockets;
-
- namespace Tcp.Test
- {
- internal class Program
- {
- static void Main(string[] args)
- {
- Encoding.RegisterProvider(CodePagesEncodingProvider.Instance);
- var encoding = Encoding.GetEncoding("gb2312");
- var tcpClient = new TcpClient();
- tcpClient.Connected += (client, e) => { Console.WriteLine("成功连接服务器"); };//成功连接到服务器
- tcpClient.Disconnected += (client, e) => { Console.WriteLine("与服务器断开连接"); };//从服务器断开连接,当连接不成功时不会触发。
- tcpClient.Received += (client, byteBlock, requestInfo) =>
- {
- //从服务器收到信息
- string mes = encoding.GetString(byteBlock.Buffer, 0, byteBlock.Len);
- Console.WriteLine($"接收到信息:{mes}");
- };
-
- //声明配置
- var config = new TouchSocketConfig();
- config.SetRemoteIPHost(new IPHost("127.0.0.1:8308"))
- .UsePlugin()
- .ConfigurePlugins(a =>
- {
- a.UseReconnection(5, true, 1000);
- })
- .SetBufferLength(1024 * 10);
-
- //载入配置
- tcpClient.Setup(config);
- Connection:
- ConnectServer(tcpClient);
- try
- {
- while (true)
- {
- var res = Console.ReadLine();
- if (!string.IsNullOrWhiteSpace(res))
- {
- var bytes = encoding.GetBytes(res);
- tcpClient.Send(bytes);
- }
- }
- }
- catch (Exception ex)
- {
- Console.WriteLine("发生异常:" + ex.Message);
- goto Connection;
- }
- }
- private static void ConnectServer(TcpClient client)
- {
- while (true)
- {
- Console.WriteLine("正在连接服务器...");
- try
- {
- client.Connect();
- Console.WriteLine("连接成功");
- break;
- }
- catch (Exception ex)
- {
- Console.WriteLine("连接失败:" + ex.Message);
- Thread.Sleep(1000);
- }
- }
- }
- }
- }
|