C#连接服务器,持续获取服务器所有发出的消息实例代码
时间: 2024-12-28 09:36:24 浏览: 3
在C#中,如果你想要创建一个应用程序持续从服务器接收消息,通常你会使用`TcpClient`或`WebSocket`等网络通信库。这里我将提供一个基于`TcpClient`的基本例子,假设服务器发送的是文本消息:
```csharp
using System;
using System.Net;
using System.IO;
class ClientThread
{
private TcpClient client;
private NetworkStream stream;
private StreamReader reader;
private StreamWriter writer;
public ClientThread(string ipAddress, int port)
{
client = new TcpClient(ipAddress, port);
stream = client.GetStream();
reader = new StreamReader(stream);
writer = new StreamWriter(stream) { AutoFlush = true };
}
// 连接到服务器
public void Connect()
{
try
{
client.Connect();
Console.WriteLine("Connected to server.");
}
catch (Exception ex)
{
Console.WriteLine($"Error connecting: {ex.Message}");
}
}
// 持续接收并打印消息
public void ListenForMessages()
{
while (true)
{
string message = reader.ReadLine();
if (message == null)
break; // 如果读取到null,可能是连接断开,检查异常
Console.WriteLine($"Received message from server: {message}");
}
// 关闭连接前确保已关闭所有流
CloseConnection();
}
// 发送消息给服务器
public void SendMessage(string message)
{
writer.WriteLine(message);
}
// 安全地关闭连接
private void CloseConnection()
{
writer.Close();
reader.Close();
stream.Close();
client.Close();
Console.WriteLine("Disconnected from server.");
}
public static void Main(string[] args)
{
var clientInstance = new ClientThread("your_server_ip", your_server_port);
clientInstance.Connect();
// 现在你可以调用ListenForMessages()开始监听消息
clientInstance.ListenForMessages();
}
}
```
记得替换`"your_server_ip"`和`your_server_port`为你实际的服务器IP地址和端口号。这个示例是一个简单的线程,如果需要在多线程环境下运行,你可能还需要考虑同步和错误处理。
阅读全文