visual studio tcp服务器端怎么写
时间: 2024-11-22 16:39:42 浏览: 56
Visual Studio中创建TCP服务器的基本步骤如下:
1. **项目设置**:
- 打开Visual Studio,选择"新建项目" -> "控制台应用(C#)"。
- 右键点击项目->添加新的类(TCP服务)。
2. **代码编写**:
```csharp
using System;
using System.Net;
using System.Net.Sockets;
using System.Text;
class TcpServer
{
private static TcpListener server;
private const int PORT = <你需要监听的端口>;
public static void StartServer()
{
try
{
// 创建TCP服务器监听器
server = new TcpListener(IPAddress.Any, PORT);
server.Start();
Console.WriteLine($"TCP Server is listening on port {PORT}...");
// 监听客户端连接并处理请求
while (true)
{
// 等待新连接
var client = server.AcceptTcpClient();
ThreadPool.QueueUserWorkItem(ReadMessage, client);
}
}
catch (Exception ex)
{
Console.WriteLine($"Error starting server: {ex.Message}");
}
}
private static void ReadMessage(object obj)
{
TcpClient client = (TcpClient)obj;
NetworkStream stream = client.GetStream();
byte[] buffer = new byte[4096];
StringBuilder response = new StringBuilder();
// 读取数据直到遇到换行符
int bytesRead;
while ((bytesRead = stream.Read(buffer, 0, buffer.Length)) > 0)
{
response.Append(Encoding.ASCII.GetString(buffer, 0, bytesRead));
if (response.ToString().IndexOf("\n") != -1)
break; // 数据结束标志
}
string message = response.ToString();
Console.WriteLine($"Received from client: {message}");
// 发送响应给客户端
string reply = "Hello from the server!";
stream.Write(Encoding.ASCII.GetBytes(reply), 0, reply.Length);
// 关闭连接
client.Close();
}
}
// 启动服务器
public static void Main(string[] args)
{
TcpServer.StartServer();
}
```
3. **运行测试**:
- 运行`Main`函数,服务器将开始监听指定端口,等待客户端连接。
阅读全文
相关推荐



















