在C#中实现局域网内通信,我们可以使用Socket编程。以下是一个简单的示例,展示了如何在局域网内进行通信:
首先,我们需要创建一个Socket对象,并设置其IP地址、端口和协议。然后,我们可以通过监听特定的端口来接收来自其他计算机的消息。最后,我们可以向其他计算机发送消息。
以下是代码实现:
```csharp
using System;
using System.Net;
using System.Net.Sockets;
using System.Text;
using System.Threading;
class Program
{
static void Main()
{
// 创建一个Socket对象
Socket socket = new Socket(AddressFamily.InterNetwork, SocketType.Stream, ProtocolType.Tcp);
// 设置IP地址和端口
IPAddress ipAddress = IPAddress.Parse("192.168.1.100"); // 目标IP地址
int port = 8080; // 目标端口
socket.SetSocketOption(SocketOptionLevel.Socket, SocketOptionName.ReuseAddress, true);
socket.Bind(new IPEndPoint(ipAddress, port));
// 监听端口
while (true)
{
byte[] buffer = new byte[1024];
int bytesRead = socket.Receive(buffer);
if (bytesRead > 0)
{
string message = Encoding.ASCII.GetString(buffer, 0, bytesRead);
Console.WriteLine("接收到消息: " + message);
// 向其他计算机发送消息
SendMessageToOtherComputer(message);
}
}
}
// 向其他计算机发送消息
static void SendMessageToOtherComputer(string message)
{
using (TcpClient client = new TcpClient())
{
client.Connect(new IPEndPoint(IPAddress.Parse("192.168.1.101"), 8080)); // 连接到目标计算机
using (NetworkStream stream = client.GetStream())
{
byte[] buffer = Encoding.ASCII.GetBytes(message);
stream.Write(buffer, 0, buffer.Length);
}
}
}
}
```
这个示例中,我们创建了一个Socket对象,并将其绑定到192.168.1.100的8080端口上。然后,我们进入一个无限循环,不断接收来自其他计算机的消息,并将其打印出来。当接收到消息时,我们会调用SendMessageToOtherComputer方法,将其发送到另一个计算机。
请注意,这个示例仅用于演示目的,实际应用中需要考虑更多的安全性和错误处理问题。