【问题标题】:C# Socket EventsC# 套接字事件
【发布时间】:2021-11-22 09:46:55
【问题描述】:

是否可以创建一个在socket接收到新数据时触发的事件处理程序,类似于

*_DataReceived(object sender, System.IO.Ports.SerialDataReceivedEventArgs e)

串行端口可用的方法?

【问题讨论】:

  • 是的,搜索Async Socket Server,你会发现很多例子。

标签: c# sockets


【解决方案1】:

是的。

看看SuperSimpleTcp

它甚至可以做你想做的事情。

void Main(string[] args)
{
  // instantiate
  SimpleTcpServer server = new SimpleTcpServer("127.0.0.1:9000");

  // set events
  server.Events.ClientConnected += ClientConnected;
  server.Events.ClientDisconnected += ClientDisconnected;
  server.Events.DataReceived += DataReceived;

  // let's go!
  server.Start();

  // once a client has connected...
  server.Send("[ClientIp:Port]", "Hello, world!");
  Console.ReadKey();
}

static void ClientConnected(object sender, ClientConnectedEventArgs e)
{
  Console.WriteLine("[" + e.IpPort + "] client connected");
}

static void ClientDisconnected(object sender, ClientDisconnectedEventArgs e)
{
  Console.WriteLine("[" + e.IpPort + "] client disconnected: " + e.Reason.ToString());
}

static void DataReceived(object sender, DataReceivedEventArgs e)
{
  Console.WriteLine("[" + e.IpPort + "]: " + 
     Encoding.UTF8.GetString(e.Data));
}

【讨论】:

    猜你喜欢
    • 2018-01-20
    • 1970-01-01
    • 1970-01-01
    • 2020-09-04
    • 1970-01-01
    • 2015-02-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多