c# - C# 中的 select() 函数

标签 c# network-programming client-server

我是 C# 新手,如有任何帮助/反馈,我们将不胜感激。我正在尝试用 C# 开发一个客户端-服务器程序,但是我确实有不同的客户端向服务器端发送信息。 C#有没有类似c语言select()的函数,可以帮助获取各个客户端的所有信息?

这是我的服务器端代码:

// Create the listening socket...
m_mainSocket = new Socket(AddressFamily.InterNetwork, 
                          SocketType.Stream, ProtocolType.Tcp);
IPEndPoint ipLocal = new IPEndPoint(IPAddress.Any, 9051);

// Bind to local IP Address...
m_mainSocket.Bind(ipLocal);

// Start listening...
m_mainSocket.Listen(10);
Socket clientSock = m_mainSocket.Accept();
byte[] clientData = new byte[1024];
int receivedBytesLen = clientSock.Receive(clientData);
string clientDataInString = 
           Encoding.ASCII.GetString(clientData, 0, receivedBytesLen);
string clientStr = "Client Data Received: " + clientDataInString;
byte[] sendData = new byte[1024];
sendData = Encoding.ASCII.GetBytes(clientStr);
clientSock.Send(sendData);
clientSock.Close();

最佳答案

有更高级别的构造,但如果您想获得相当低的级别,您可能正在寻找 Socket.Accept:

http://msdn.microsoft.com/en-us/library/system.net.sockets.socket.accept.aspx

关于c# - C# 中的 select() 函数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7530055/

相关文章:

c# - 等待任务完成,在 'await' 之后进行操作

c# - ComboBox 在 SelectionChangeCommitted 上获得了新的 SelectedValue 但没有获得新的 SelectedText

java - 当一个应用程序尝试连接到另一个应用程序时出现管道异常

c - 在 C 中使用第二次调用 send() 时出现问题

c# - 在 databind() 之后删除 Gridview 中的行

networking - float IP 在 Digital Ocean 上的使用

sockets - 将或 "connect"QUdpSocket 绑定(bind)到远程主机和端口?

java - 如何使用 Apache MINA 服务器读取以字节为单位的二进制数据?

java - 从聊天窗口读取输入

c# - 像枚举但对象