要在本地网络中进行Windows服务之间的TCP通信,可以使用C#编程语言来实现。下面是一个简单的代码示例:
服务端代码:
using System;
using System.Net;
using System.Net.Sockets;
using System.Text;
public class Server
{
public static void Main()
{
// 监听的IP地址和端口号
IPAddress ipAddress = IPAddress.Parse("127.0.0.1");
int port = 8080;
TcpListener listener = new TcpListener(ipAddress, port);
listener.Start();
Console.WriteLine("Server started. Waiting for connections...");
while (true)
{
using (TcpClient client = listener.AcceptTcpClient())
{
Console.WriteLine("Client connected.");
using (NetworkStream stream = client.GetStream())
{
byte[] buffer = new byte[1024];
int bytesRead = stream.Read(buffer, 0, buffer.Length);
string message = Encoding.ASCII.GetString(buffer, 0, bytesRead);
Console.WriteLine("Received: " + message);
// 处理接收到的消息
string response = "Hello from server!";
byte[] data = Encoding.ASCII.GetBytes(response);
stream.Write(data, 0, data.Length);
Console.WriteLine("Sent: " + response);
}
}
Console.WriteLine("Client disconnected.");
}
}
}
客户端代码:
using System;
using System.Net;
using System.Net.Sockets;
using System.Text;
public class Client
{
public static void Main()
{
// 服务器的IP地址和端口号
IPAddress serverIP = IPAddress.Parse("127.0.0.1");
int serverPort = 8080;
using (TcpClient client = new TcpClient())
{
client.Connect(serverIP, serverPort);
using (NetworkStream stream = client.GetStream())
{
string message = "Hello from client!";
byte[] data = Encoding.ASCII.GetBytes(message);
stream.Write(data, 0, data.Length);
Console.WriteLine("Sent: " + message);
byte[] buffer = new byte[1024];
int bytesRead = stream.Read(buffer, 0, buffer.Length);
string response = Encoding.ASCII.GetString(buffer, 0, bytesRead);
Console.WriteLine("Received: " + response);
}
}
}
}
上述代码中,服务端通过创建TcpListener对象并开始监听指定的IP地址和端口号。当接收到客户端连接时,使用TcpClient对象获取与客户端通信的NetworkStream,以读取客户端发送的消息,并发送响应。
客户端通过创建TcpClient对象并连接到指定的服务器IP地址和端口号。然后使用NetworkStream对象向服务器发送消息,并读取服务器的响应。
请注意,这只是一个简单的示例,实际应用中可能需要更复杂的逻辑和错误处理。